1.引用看作是一个别名,一个变了,另外一个也得得变
<?php $a=100; $b=&$a; $b=50; echo $a; // 输出是50 当引用的值改变的时候原来值也已一样改变
2.只用变量才能引用
3.如果一个给变量一个新的引用,则改变的只是引用的关系
4.unset()函数只是取消了引用的关系
<?php $a=100; $b=&$a; $c=123; $b=&$c; unset($c); echo $b;//照样输出的是123,
<?php $a=100; $b=&$a; $c=123; $b=&$c; unset($c); unset($b);//这里的$b不会只向原来的$b echo $b;//$b 是一个空的变量。输不出
下面是一道新浪php招聘一道很经典的题目
请写出输出结果: $var1 = 5; $var2 = 10; function foo(&$my_var){ global $var1; //这里是全局变量 $var1 += 2; //var1的值已经变成了7 $var2 = 4; //var2的值是4 $my_var += 3; // 8 return $var2; } $my_var = 5; echo foo($my_var) ." "; //4 echo $my_var ." "; //8 echo $var1 ." "; //7 echo $var2 ." "; //10 $bar = 'foo'; $my_var = 10; echo $bar($my_var) ." "; //4