php - 在 PHP 中,diff : $var2=$var1 ; $var2=&$var1; 是什么

标签 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/

相关文章:

php - 从 base 10 转换为 base 31(仅适用于选定字符)

php - Laravel,得到两个函数

php - 在不刷新站点的情况下重新加载 div

php - 用盐散列密码后如何登录? <==编辑版本 #2 ==>

php - 在 TIMESTAMP 字段中存储一个已经是 UTC 的时间戳,而无需在 MySQL 中进一步转换

php - 如何从 laravel 的存储中删除图像?

php - 从USB串口设备读取数据

php - 过滤掉实际上不是重复项的重复项 MySQL

php - mysql - 返回分组在列中的结果

php - 更改子类的 protected 变量的值