zoukankan      html  css  js  c++  java
  • 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()阶段销毁的

             

  • 相关阅读:
    【iCore、iCore2 双核心板】EPCS 实验(SPI Flash)(基于Verilog语言)
    【iCore2双核心板】SRAM 读写实验(基于Verilog语言)
    大便难案
    乌梅丸案二则
    奔豚
    中医对甲流的认识
    大青龙汤临床应用
    中风之补阳还五汤
    时方的魅力
    艾灸急治
  • 原文地址:https://www.cnblogs.com/hellohell/p/9100724.html
Copyright © 2011-2022 走看看