0

我知道$a =& $bassigns$a作为参考,$b并且我已经阅读了一些关于它的答案,但没有人提供真正有用的示例用法,包括:PHP 中的“=&”和“&=”运算符是什么意思?

任何人都可以提供一个最小的例子来展示如何=&在 PHP 中有用吗?为什么有人想为一个变量取两个名字?

4

3 回答 3

0

真正有用的例子是修改树状结构:

假设您有一个像“abc”这样的树路径和一个数组:

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';
}
于 2013-10-11T03:05:44.640 回答
0

这是一个非常简单的例子。$var1您正在分配to的引用$var2,因此当您更改时$var2$var1值会更改。

<?php
$var1 = 10;
$var2 = 20;
$var2 = &$var1;
$var2 = 200;
echo $var1; // 200;
于 2013-10-11T02:22:20.640 回答
0

假设一些用户定义的函数操作一个字符串:

function test($string){
    $string.='bar';
    return $string;
}

在这种情况下,您必须将函数的返回归因于变量:

$foo='foo';
$foo=test($foo);

通过引用传递变量可以消除一些代码:

function test(&$string){
    $string.='bar';
}

$foo='foo';
test($foo);

就像,例如,原生settype作品。查看手册中的 & 符号。

于 2013-10-11T02:56:24.893 回答