PHP 运算符 =& 是什么意思?

2022-08-30 13:22:56

可能的重复:PHP 中的 “=&” 和 “&=” 运算符是什么意思?

我在下面的代码中找到了运算符“=&”,我不知道它是什么意思。这是什么意思,它有什么作用?

我阅读它的代码

function ContentParseRoute($segments)
{
    $vars = array();

    //Get the active menu item
    $menu =& JSite::getMenu();
    $item =& $menu->getActive();

    // Count route segments
    $count = count($segments);
        ....

答案 1

这不是通过引用 () 进行的赋值 ()。=&

如果你要说:

$a = 42;
$b =& $a;

实际上是在说通过引用进行分配。$a$b

通过引用赋值的作用是将两个变量“绑定”在一起。现在,如果您以后要修改,则会随之更改。$a$b

例如:

$a = 42;
$b =& $a;

//later
echo $a; // 42
echo $b; // 42

$a = 13;
echo $a; // 13
echo $b; // 13

编辑:

正如Artefacto在评论中指出的那样,它与.$a =& $b$a = (&$b)

这是因为虽然运算符 means 从某物中产生引用,但运算符确实按值赋值,因此表达式 means 对 进行临时引用,然后将该临时值赋值给 ,这不是按引用赋值的。&=$a = (&$b)$b$a


答案 2

它是引用赋值运算符

这意味着,当您稍后在代码中修改运算符的 LHS 时,它将修改 RHS。您将 LHS 指向 RHS 占用的同一内存块。


推荐