请先看一下两个函数
function test_global($b){
global $a;
$a = $b;
echo $a.":";
}
function test(){
global $a;
echo $a;
}
test_global(5);
test();
以上函数输出应该为5 : 5,
如果test_global中改为 $a = &$b;
则输出5: 。第二个$a没有输出。
记住:
1、声明global 的变量,在函数体内,则属于局部变量,无论是 $a = &$b 还是$a = $b,都会输出数据。
2、如果在函数外部调用,或者在不同的函数中调用,则是作为全局变量,声明global 的变量在进行相互赋值时,是传值赋值,不是传址赋值。即,$a = $b 相当于$a拥有 $b 的值,但是他们的地址是不同的。如果是$a = &$b ,则$a此时会拥有$b的地址,而不是$b的值,所以没有任何输出。
不知道正不正确,还请各位指正