我正在深入了解 PHP 的基础知识,突然想到“变量以哪种内存格式存储在内存中?”
那是堆栈还是堆?
请为我提供参考资料来研究内存中的这种变量分配..
PHPzval/pval
用作基本数据容器。
struct _zval_struct {
zvalue_value value; // The value
zend_uint refcount__gc; // The number of references to this value (for GC)
zend_uchar type; // The type
zend_uchar is_ref__gc; // Whether this value is a reference (&)
};
typedef union _zvalue_value {
long lval; // For integers and booleans
double dval; // For floats (doubles)
struct { // For strings
char *val; // consisting of the string itself
int len; // and its length
} str;
HashTable *ht; // For arrays (hash tables)
zend_object_value obj; // For objects
} zvalue_value;
它们在 zend.h 中定义:http: //lxr.php.net/xref/PHP_5_4/Zend/zend.h#318