Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
function test(&$a) { $a = $a + 3; }
如果我先分配变量并调用它: $a = 3; 测试($a); 回声$a; //它将输出6
但如果我做这个测试($a = 3); 回声$a; //它将返回3
这是为什么?第二个函数调用中的引用变量是否也将其修改为 6?
开启严格标准即可查看:
只有变量应该通过引用传递
您不应该期望您的第二个示例完全有效。它确实似乎是一个巧合,尽管 PHP 确实记录了它。
<?php function test(&$a) { echo $a; $a = $a + 3; } test($q = 3); ?>
这输出3. 我有点惊讶,我希望看到trueas$q = 3通常会成功并因此返回 true。
3
true
$q = 3