基本变量
php的zval结构体
|
|
这个新的zval在64位环境下,只需要16个字节,其主要分为两个部分,value和扩充字段。
- value是一个size_t大小(一个指针大小),可以保存一个指针或者一个long/double
- 扩充字段又分为u1,u2两个部分,u1是typeinfo,u2是各种辅助字段
** typeinfo部分保存了这个zval的类型,扩充辅助字段则会在多个地方使用,比如next,就用在取代hashtable中的原来的拉链指针。
PHP7中的zval, 已经变成了一个值指针, 它要么保存着原始值, 要么保存着指向一个保存原始值的指针。
php7中,引用计数不再是zval的字段,而是被设计在zval的value字段所指向的结构体中