在函数中分配和传递引用变量

时间:2012-10-08 22:37:20

标签: php function variables reference

function test(&$a)
{
    $a = $a + 3;

}

如果我先分配变量并调用它: $ a = 3; 测试($ a)的 echo $ a; //它将输出6

但如果我这样做 测试($ a = 3); echo $ a; //它将返回3

为什么?不是第二个函数调用中的引用变量也将它修改为6?

2 个答案:

答案 0 :(得分:1)

打开严格的标准,看看:

  

只应通过引用传递变量

你不应该指望你的第二个例子可以工作。事实上它似乎是巧合,尽管PHP确实记录了它。

答案 1 :(得分:1)

<?php
function test(&$a)
{
    echo $a;
    $a = $a + 3;
}

test($q = 3);
?>

这会输出3。我在那里有点惊讶,我希望看到true $q = 3通常会成功,然后返回true。