引用变量和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机制,没用引用符号,但是指向同一空间,直接是引用传递。