无意间看到个题目,挺有意思记录一下
引用变量:
引用意味着用不同的名字访问同一个变量内容。
$a =&$b;($a 和 $b永远指向同一个地址。unset只会取消引用,不会销毁空间。对象本身就是引用传递。)
题1:
题2:
<?php /** * Created by PhpStorm. * User: huahua * Date: 2019/6/28 * Time: 上午10:29 */ $data = ['a','b','c']; foreach($data as $k=>$v) { $v = &$data[$k]; } var_dump($data); /** * 循环1 $v=&$data[0],$data=['a','b','c'] * 循环2 $v=b=&$data[0],$data=['b','b','c'] ps:因为$v和$data[0]指向的同一个地址,所以循环2,$v=b,$data[0]=b,$data=['b','b','c'] * 循环3 $v=c=&$data[1],$data=['b','c','c'] */
题3:
第一次遍历后的结果为:array('0'=>"a","1"=>'b','2'=>&c)
第二次遍历是给索引c赋值(指向引用也可以操作他的值)
第一次赋值 a11, b22, a11
第二次赋值 a11, b22, b22
第三次赋值 a11, b22, b22