PHP,通过引用传递和&性格 - 有用性是什么?

时间:2013-04-25 19:44:43

标签: php reference

我一直在寻找满意的答案。仍然没有围绕&的有用性。用作参考时的字符。我为什么要使用它?我通过榜样学得最好。

以下是一个来自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.

有什么好处?

无论如何,我很欣赏一个非常清晰甚至是愚蠢的解释,说明使用&amp; amp;是在引用某些东西时。

2 个答案:

答案 0 :(得分:3)

最好用代码解释:

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

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

在上面的示例中,$a的值可以更改为函数。这意味着如果通过引用传递,该函数可以访问调用上下文中的变量。这与以下内容不同:

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

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

传递给函数的param只是$a

值的副本

答案 1 :(得分:0)

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

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