数据类型 - 引用

引用是一种指向其他数据类型的结构,类似C语言中指针的概念。当修改引用类型的变量时候,其修改将反映到实际引用的变量上。辣么当我们使用$a = &$b这样一个引用时候发生了什么呢?来我们来看看流程吧

  1. $a = &$b ,首先为$a 变量分配一个Zend_reference结构,内嵌了一个zval ,这时候zval.value指向原来zval的value
  2. 将原来$b 的类型改为IS_REFERENCE引用类型,原来zval的value指向新建的zend_reference结构

    

struct _zend_reference {
   zend_refcounted_h gc;
   zval              val;
};

 

 

来举个栗子:

 

注意:使用引用,只有通过&产生,无法通过赋值来传递,例如:



你可能感兴趣的:(读PHP7源码日记)