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

}

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

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

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

4

2 回答 2

1

开启严格标准即可查看:

只有变量应该通过引用传递

您不应该期望您的第二个示例完全有效。它确实似乎是一个巧合,尽管 PHP 确实记录了它。

于 2012-10-08T22:42:16.973 回答
1
<?php
function test(&$a)
{
    echo $a;
    $a = $a + 3;
}

test($q = 3);
?>

这输出3. 我有点惊讶,我希望看到trueas$q = 3通常会成功并因此返回 true。

于 2012-10-08T22:46:49.510 回答