众所周知 php 引用变量 是php初学者 入门的一个难点之一
下面我们将来详细的分析一下php引用变量的考点
首先php变量在赋值的时候是遵循COW原则的 即 copy on write
所谓的cow原则即变量只有在被重新赋值的时候才会开辟内存空间
也就是说 即使我们不使用引用 一个变量被赋值后 只要我们不改变变量的值 也与使用引用一样代码如下
<?php
//定义变量
//变量a 会开辟一个空间
//range()函数 建立一个包含指定范围单元的数组
//memory_get_usage — 返回分配给 PHP 的内存量
$a = range(0, 1000);
var_dump(memory_get_usage());
//定义变量b
//COW copy on write
//这里给b赋值
$b = $a;
var_dump(memory_get_usage());
$a = range(0, 1000);
var_dump(memory_get_usage());
运行结构如下
C:\wamp64\www\Interview\variable.php:7:int 372816
C:\wamp64\www\Interview\variable.php:14:int 372904
C:\wamp64\www\Interview\variable.php:17:int 509416
由结果可以看出 $a
变量的值不变的时候 我们把$a
的值赋给$b
$b
是不占内存空间的