PHP中引用赋值(assign by reference)的使用

引用赋值

用不同的名字访问同一个变量内容,使用 & 符号

$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进行内存的优化。比如:变量的多次赋值、函数参数传递,并在函数体内修改实参等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章