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在表单提交时删除文件并记录

php - 处理多表关系的更好方法

具有多个条件的 PHP MySQL 搜索

php - SQLSTATE[HY093] : Invalid parameter number: parameter was not defined - using greater than operator in SQL

javascript - 带有 websocket 和 cloudflare 的 Node.js 无法工作

php - 当使用 PHP 的 crypt() 函数创建 bcrypt 哈希时,我需要盐吗?

php - MySQL : possible to put IF statment in LEFT JOIN?

php - Mongo PHP 加入来自另一个集合的数据并更新文档 - 如 SQL JOIN

php - Laravel session - 不想共享域和子域 session

php - 我如何引用动态创建的列表 php