PHP7中的数据类型
PHP7中的数据类型 PHP中变量名→zval,变量值→zend_value。其变量内存是通过引用计数管理的,在PHP7中引用计数在value结构中。 变量类型: 头文件在PHP源码 /zend/zend_types.h 内部实现: PHP通过zval这个结构体来表示一个变量,而不同类型的变量值则通过zval嵌入的一个人联合体表示,即zend_value。 zend_value是一个联合体,其代码如下: ast、ptr、zv这些类型只给内核自己使用。 字符串: PHP为字符串单独定义了一个结构:zend_string。在zend_value中通过str指向具体结构。 存储字符串内容的val比较特殊。 val并没有使用char*类型,字符串分配时是类似这样操作的:malloc(sizeof(zend_sting)+字符串长度),就是会多分配出一些内存来存储字符串内容,这块多出来的内存起始位置就是val。 这样做的好处可以省去一次内存分配(char*),且更有助于内存管理。 val中多出来的一个字节(结构体中为val[1]而不是val[0])用于存储存储字符串的最后一个字符"\0"。 比...

