$a = 'variable';
$b = $a;
上面的代码中
假设简单的把$a的值赋值给$b,就有两个"variable"字符串,不利于内存复用,并且简单的赋值时非常耗内存的。
写时复制就是为了解决这种问题而产生的
解释为:当变量的值改变时才进行内存的复制。
php变量在内核中存储zval结构中
其中有一个refcount成员变量
refcount:计算指向引用集合的变量个数。
测试代码如下
$a = 'variable';
xdebug_debug_zval('a');
$b = $a;
xdebug_debug_zval('a');
$a = 'change';
xdebug_debug_zval('a');