我一直在寻找满意的答案。仍然没有围绕&的有用性。用作参考时的字符。我为什么要使用它?我通过榜样学得最好。
以下是一个来自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;是在引用某些东西时。
答案 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,您将看到函数内对该变量所做的更改。在第二种情况下,你不会。