<?php
$var3 = 1;
$var4 = 2;
function test2(){
global $var3,$var4;
$var4 = &$var3;
$var4 = 3;
//$var3 = 3;
}
test2();
echo $var4 ;
?>
问题1:这里$var4为何还是输出2呢,不管是在后面重新给$var3还是$var4赋值都不起效果,我的理解是在函数里$var3将引用和值传给了$var4,那么$vars4就应该和$var3指向同一个地址了。。。。
问题2:求推荐一本适合PHPer的书,我比较喜欢专研上面这些 PHP原理的书,谢谢了。
在执行
global $var4;
时,php产生了一个和全局变量同名的局部变量,指向了全局变量。当
$var4 = &$var3;
时,局部变量$var4
不再指向全局变量$val4
,而重新指向全局变量$var3
。局部变量
$var4
的改变,不会再影响到全局变量$val4
,只会影响到重新指向的全局变量$val3
。