0

我一直在到处寻找一个令人满意的答案。当用作参考时,我仍然没有想到 & 字符的有用性。我为什么要使用它?我通过例子学得最好。

下面是一个取自 php.net 的示例,稍作修改:

<?php
function foo(&$var)
{
    $showVar = $var++;
    echo $showVar;
}

$a=5;
foo($a);
?>

以上与以下有何不同:

<?php
    function foo($var) // & was removed here.
{
    $showVar = $var++;
    echo $showVar;
}

$a=5;
foo($a);
?>

我在打印 $var++ 时得到了相同的结果(值 5),但根据那里的文档,它应该是 6。

有什么好处?

在任何情况下,我都会很感激一个非常清晰甚至愚蠢的解释,即使用 & 的好处是在引用某些东西时。

4

2 回答 2

3

最好用代码解释:

function foo(&$var)
{
    $var++;
}

$a=5;
foo($a);
echo $a; // 6

在上面的这个例子中,$a可以改变函数的值。这意味着如果您通过引用传递该函数可以访问调用上下文中的变量。这不同于:

function foo($var)
{
    $var++;
}

$a=5;
foo($a);
echo $a; // 5

传递给函数的参数只是值的副本$a

于 2013-04-25T19:48:16.840 回答
0

不同之处在于,如果您不通过引用传递它,则更改只会在函数内本地发生。

在您的第一个场景中,如果您在调用函数后使用 echo $a,您将在函数中看到对该变量所做的更改。在第二种情况下,你不会。

于 2013-04-25T19:47:37.230 回答