澄清PHP手册; 通过引用传递的默认值

Dan*_*ugg 5 php parameters function

由于PHP手册中的不一致(正如我之前发布的那样),我只是在询问一些澄清.

函数参数页面(http://ca2.php.net/manual/en/functions.arguments.php)有以下注意事项:

注意:从PHP 5开始,默认值可以通过引用传递.

现在,我认为这只是意味着可以接受以下语法:

function foo(&$bar = null){
    // ...
}
Run Code Online (Sandbox Code Playgroud)

然而,再次由于其他不一致,我想知道这是否属于其他东西.

Ja͢*_*͢ck 4

这意味着在 PHP 4 中,对通过引用传递的参数使用默认值将导致解析错误:

Parse error: syntax error, unexpected '=', expecting ')' in ...
Run Code Online (Sandbox Code Playgroud)

演示

在 PHP5 中,当没有传递参数时,你的函数将有一个普通的局部变量,称为$bar初始化为null

它可能应该改写为:

注意:从 PHP 5 开始,函数声明可以为通过引用传递的参数定义默认值。