引用变量和cow机制

1. 什么是引用变量?在php中用什么符号定义引用变量?

引用:用不同的名字去访问同一个变量内容。

用 &。

2.引用变量的原理(COW)

$a = 1;
$a = $b; //此时并没有开辟空间
// COW copy on write;当$a $b中的变量发生修改才会开辟空间。
$a = 2; 

3.但是用&之后,两个变量一直指向同一个空间。

zval变量容器中可看到,有两个指标 refcount (引用计数)、isref(是否是引用)

4.unset 只是取消引用,不会销毁空间。

5.对象本身就是引用传递。

与2对比,对象没采用cow机制,没用引用符号,但是指向同一空间,直接是引用传递。

 

 

 

 

 

      

posted @ 2020-03-23 22:35  天凉好个秋秋  阅读(305)  评论(0编辑  收藏  举报