PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了变量在 PHP7 内部的实现(二)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

在上篇文章给大家介绍了PHP7 内部的实现(一),本篇继续给大家介绍PHP7内部实现相关知识,感兴趣的朋友通过本篇文章一起学习吧。

本文第一部分和第二均翻译自Nikita Popov(nikic,PHP 官方开发组成员,柏林科技大学的学生) 的 博客 。为了更符合汉语的阅读习惯,文中并不会逐字逐句的翻译。

要理解本文,你应该对 PHP5 中变量的实现有了一些了解,本文重点在于解释 PHP7 中 zval 的变化。

第一部分讲了 PHP5 和 PHP7 中关于变量最基础的实现和变化。这里再重复一下,主要的变化就是 zval 不再单独分配内存,不自己存储引用计数。整型浮点型等简单类型直接存储在 zval 中。复杂类型则通过指针指向一个独立的结构体。

复杂的 zval 数据值有一个共同的头,其结构由 zend_refcounted 定义:

PHP;">
struct _zend_refcounted {
 uint32_t refcount;
 union {
  struct {
   ZEND_ENDIAN_LOHI_3(
    zend_uchar type,zend_uchar flags,uint16_t  gc_info)
  } v;
  uint32_t type_info;
 } u;
};

大佬总结

以上是大佬教程为你收集整理的变量在 PHP7 内部的实现(二)全部内容,希望文章能够帮你解决变量在 PHP7 内部的实现(二)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: