在PHP中,大部分变量类型,如字符串,整型,浮点,数组等都是值类型的,而类和对象是引用类型.和其他语言有点差距.
(1).在值类型中我们直接使用&符号表示指向对应变量的内存地址,当前变量和被指向的变量只要有1个的值被修改都会直接影响另外一个变量的值发生变化。(ps:还是非常节省内存的,可以使用memory_get_usage()函数测试)
(2).在引用类型中可以直接使用赋值的方法表示引用,因为类和对象本身就是引用类型。(ps:引用类型赋值请用对象克隆)
如果您觉得引用变量您真的完全没有问题,可以参考下面的题目:
<?php $data=['a','b','c']; foreach($data as $key =>$value){ $value=&$data[$key]; } / *1.请问每次循环$data的值是多少? *2.程序执行完成$data的值是多少? */ ?>
提示:foreach循环体中 $key和$value是在赋值,$value一直在引用变量,然后又赋值.