写入时复制是指:在 用变量对变量 进行赋值时,这些相同值的变量指向同一块内存,只有当这些指向同一块内存的 相同值的变量 中的某一个变量的值 发生改变的时候,才需要进行变量分离,即:将 值发生改变的变量分离出来(PHP内核将这块内存复制一份,并更新其值)。
使用场景:变量的多次赋值;函数的参数传递。
PHP中,Zend引擎为了区分同一块内存是否被多个变量引用,在zval结构中定义了ref_count和is_ref两个变量。
ref_count定义了内存被变量引用的次数,次数为0时销毁。
is_ref定义了变量是否被强制引用($a = &$b),被强制引用时,值为1。