可能重复: PHP中的"=&"和"&="运算符是什么意思?
我在下面的代码中找到了运算符"=&",我不知道它的含义.它是什么意思,它有什么作用?
我读它的代码:
function ContentParseRoute($segments)
{
$vars = array();
//Get the active menu item
$menu =& JSite::getMenu();
$item =& $menu->getActive();
// Count route segments
$count = count($segments);
....
Run Code Online (Sandbox Code Playgroud)
Aus*_*yde 57
这不是=
reference(&
)的赋值().
如果你要说:
$a = 42;
$b =& $a;
Run Code Online (Sandbox Code Playgroud)
你实际上是$a
通过引用来指定$b
.
通过引用分配的是将两个变量"绑定"在一起.现在,如果您$a
稍后修改,$b
将随之改变.
例如:
$a = 42;
$b =& $a;
//later
echo $a; // 42
echo $b; // 42
$a = 13;
echo $a; // 13
echo $b; // 13
Run Code Online (Sandbox Code Playgroud)
编辑:
作为Artefacto在评论中指出的,$a =& $b
是不一样的$a = (&$b)
.
这是因为虽然&
运算符意味着从某个东西做出引用,但是=
运算符确实按值赋值,因此表达式$a = (&$b)
意味着临时引用$b
,然后将该临时值分配给$a
,而不是通过引用赋值.
这是一个正在使用的示例:
$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
Run Code Online (Sandbox Code Playgroud)
不是说明,而是一个&
无需在=&
分配中使用运算符就可以使用运算符的示例。