<分区>
Possible Duplicate:
Reference assignment operator in php =&
$var2 = $var1;
$var2 = &$var1;
例子:
$GLOBALS['a']=1;
function test()
{
global $a;
$local=2;
$a=&$local;
}
test();
echo $a;
为什么 $a 还是 1 ?
标签 php
<分区>
Possible Duplicate:
Reference assignment operator in php =&
$var2 = $var1;
$var2 = &$var1;
例子:
$GLOBALS['a']=1;
function test()
{
global $a;
$local=2;
$a=&$local;
}
test();
echo $a;
为什么 $a 还是 1 ?
最佳答案
运算符 =& 适用于引用而非值。
$var2=$var1
和 $var2=&$var1
之间的区别在这种情况下是可见的:
$var1 = 1;
$var2 = $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 1'
$var1 = 1;
$var2 =& $var1;
$var1 = 2;
echo $var1 . " " . $var2; // Prints '2 2'
当您使用 =& 运算符时,您不会对 $var2 说“现在获取 $var1 的值”,而是说类似“您的值将存储在与 $var1 的值完全相同的位置”之类的话. 因此,无论何时更改 $var1 或 $var2 的内容,您都会在这两个变量中看到修改。
有关更多信息,请查看 PHP.net
编辑:
对于全局部分,您需要使用 $GLOBALS["a"] =& $local;
Cf.文档。
关于php - 在 PHP 中,diff : $var2=$var1 ; $var2=&$var1; 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3537336/