• php常量的实现


    1.php的常量 就是一个简单的标识符,脚本执行期间不会改变,大小写敏感,默认大写。

    常量的存储结构

    typedef struct _zend_constant {
        zval value;   //常量值
        zend_string *name; //常量名
        int flags;  //常量标识位
        int module_number; //所属扩展、模块
    } zend_constant;

       flag代表的含义 : CONST_CS: 大小写敏感

                                CONST_PERSISTENT: 持久化的(只有通过扩展、内核定义的才支持,这种常量不会在request结束时清理掉)

                                CONST_CT_SUBST: 允许编译时替换      (编译时如果发现有地方在读取常量的值,那么编译器会尝试直接替换为常量值-》TRUE、FALSE、NULL)

    常量的销毁   常量存储在EG(zend_constants)哈希表中,根据常量名直接查找hash表

                      非持久化常量在request请求结束时销毁,从哈希表末尾开始向前遍历EG(zend_constants),将非持久化常量删除,直到碰到第一个持久化常量时,停止遍历,正常情况下所有通过扩展定义的常量一定是在PHP中通过define定义之前。

                      持久化常量是在php_module_shutdown()阶段销毁的

             

  • 相关阅读:
    仿美团pc,koa+ssr(四)
    基本的数据库操作脚本
    jQuery选择器总结
    经常学习参考网站
    WebAPI
    Sqlserver 基本面试题
    truncate和delete的区别
    Webservice,WCF,WebAPI 之间的区别
    WCF 学习
    学习angularJs(1)--引用文件
  • 原文地址:https://www.cnblogs.com/hellohell/p/9100724.html
Copyright © 2020-2023  润新知