引用赋值
用不同的名字访问同一个变量内容,使用 & 符号
$a = &$b;
面试实战题
//写出如下程序的输出结果
$d = ['a', 'b', 'c'];
foreach($d as $k => $v)
{
$v = &$d[$k];
}
//程序运行时,每一次循环结束后变量 $d 的值是什么?请解释。
//程序执行完成后,变量 $d 的值是什么?请解释。
使用函数
memory_get_usage( $real_usage = false)//返回分配给PHP的内存大小字节数
range()//返回一个数组序列
xdebug_debug_zval() 用于显示变量的信息
COW机制: Copy-On-Write
- 在PHP内核中,COW也是主要的内存优化手段。
- 在通过变量赋值的方式赋值给变量时,不会申请新内存来存放新变量的值,而是简单的通过一个计数器来共用内存。只有在其中的一个引用指向变量的值发生变化时,才申请新空间来保存值内容,以减少对内存的占用。
- 在很多场景下PHP都使用COW进行内存的优化。比如:变量的多次赋值、函数参数传递,并在函数体内修改实参等。