我知道$a =& $b
指定$a
作为对$b
的引用,我已经阅读了一些有关它的答案,但没有人提供真正有用的示例用法包括:What do the "=&" and "&=" operators in PHP mean?
任何人都可以提供一个最小的例子来展示=&
在PHP中的用途吗?为什么有人想为一个变量设两个名字?
答案 0 :(得分:0)
这是一个非常简单的例子。您将$var1
的引用分配给$var2
,因此当您更改$var2
时,$var1
值会发生变化。
<?php
$var1 = 10;
$var2 = 20;
$var2 = &$var1;
$var2 = 200;
echo $var1; // 200;
答案 1 :(得分:0)
假设某些用户定义的函数操纵字符串:
function test($string){
$string.='bar';
return $string;
}
在这种情况下,您必须将函数的返回归属于变量:
$foo='foo';
$foo=test($foo);
通过引用传递变量可以消除一些代码:
function test(&$string){
$string.='bar';
}
$foo='foo';
test($foo);
就像,例如,原生settype
有效。查看manual上的&符号。
答案 2 :(得分:0)
真正有用的例子是修改类似树的结构:
假设你有一个像'a.b.c'这样的树路径和一个数组:
array(
'a' => array(
'b' => array(
'c' => array(),
),
),
)
你需要在最深的元素中插入一个新值。你最终会得到类似的东西(未经过测试,仅用于演示目的):
$parts = explode('.', $path);
$node = &$tree;
foreach ($parts as $part) {
if (isset($node[$part])) {
$node = &$node[$part];
} else {
$node = null;
break;
}
}
if (!is_null($node)) {
$node[] = 'new value';
}