PHP7支持哪些数据类型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1260个文字,预计阅读时间需要6分钟。
PHP中变量名映射为zval,变量值映射为zend_value。变量内存是通过引用计数管理器管理的,在PHP7中,引用计数在value结构中实现。变量类型:在PHP源码文件/zend/zend_types.h内部实现,PHP通过zval这个结构体来表示。
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*),且更有助于内存管理。
本文共计1260个文字,预计阅读时间需要6分钟。
PHP中变量名映射为zval,变量值映射为zend_value。变量内存是通过引用计数管理器管理的,在PHP7中,引用计数在value结构中实现。变量类型:在PHP源码文件/zend/zend_types.h内部实现,PHP通过zval这个结构体来表示。
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*),且更有助于内存管理。

