PHP的常量和變量

變量

typedef struct _zval_struct zval;
...
struct _zval_struct {
    /* Variable information */
    zvalue_value value;     /* value */
    zend_uint refcount__gc;
    zend_uchar type;    /* active type */
    zend_uchar is_ref__gc;
};

PHP使用這個結構來存儲變量的所有數據。和其他編譯性靜態語言不同, PHP在存儲變量時將PHP用戶空間。的變量類型也保存在同一個結構體中。這樣我們就能通過這些信息獲取到變量的類型。

zval結構體中有四個字段,其含義分別爲:

屬性名含義默認值
refcount__gc表示引用計數1
is_ref__gc表示是否爲引用0
value存儲變量的值 
type變量具體的類型 

常量

常量的內部結構

typedef struct _zend_constant {    
zval value; /*zval結構,PHP內部變量的存儲結構,在第一小節有說明 */    
int flags;  /* 常量的標記如 CONST_PERSISTENT | CONST_CS */    
char *name; /* 常量名稱 */   
uint name_len;      
int module_number;  /* 模塊號 */
} zend_constant;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章