PHP运算符是什么意思?

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

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

我读的代码

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

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

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

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

如果你想说:

$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)

这是因为&运算符意味着引用某个东西,而=运算符是按值赋值的,所以表达式$a = (&$b)意味着对$b进行临时引用,然后赋值那是暂时的$a ,而不是通过引用分配。


它是引用赋值操作符

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


这里有一个它正在使用的例子:

$array = array('apple', 'orange', 'banana');

// Without &
foreach($array as $d)
{
    $d = 'fruit';
}

echo implode(', ', $array); // apple, orange, banana

// With &
foreach($array as &$d)
{
    $d = 'fruit';
}

echo implode(', ', $array); // fruit, fruit, fruit

不是一个解释,而是一个能够使用&运算符而不在=&赋值中使用它的例子。

链接地址: http://www.djcxy.com/p/57585.html

上一篇: What does the PHP operator =& mean?

下一篇: How can I sort arrays and data in PHP?