加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

彻底搞懂PHP 变量布局体

发布时间:2021-03-14 21:07:15 所属栏目:编程 来源:网络整理
导读:PHP5 中的 zval 大都文章,在提到PHP5 变量布局体的时辰,都提到:sizeof(zval) == 24,sizeof(zvalue_value) == 16,现实上这个阐述并禁绝确,在 CPU 为 64bit 时,这个功效是正确的。 但当 CPU 为32bit 时: sizeof(zval) == 16,sizeof(zvalue_value) == 8

PHP5 中的 zval

大都文章,在提到PHP5 变量布局体的时辰,都提到:sizeof(zval) == 24,sizeof(zvalue_value) == 16,现实上这个阐述并禁绝确,在 CPU 为 64bit 时,这个功效是正确的。

但当 CPU 为32bit 时: sizeof(zval) == 16,sizeof(zvalue_value) == 8,首要由于 CPU 为 64bit 时,指针占用8个字节,而 32bit时,指针为4个字节。

PHP 7 中的 zval

PHP 7的看似许多,但着实更简朴了,岂论 CPU 是32bit 照旧 64bit,sizeof(zval) 永久都是便是 16。 首要看 zend_value 中的 ww,是两个 uint32_t,这个永久是 8 个字节,以是 sizeof(zend_value) == 8,因此 sizeof(zval) == 16。

以是 PHP7 新特征提到的节减内存这点上,在 32bit 体系中,PHP5 => PHP7 并无变革。

趁便说下 sizeof,不能当做函数,固然写法像函数,这个数值会在编译期就确定好,非运行期。相同编译预处理赏罚。

总结

以上所述是小编给各人先容的PHP 变量布局体,但愿对各人有所辅佐。措施员碰着题目城市上(编程之家52php.cn)查找题目解答要领!假如认为站点还不错,顺手转发给措施员伴侣一下!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读