2011-12-30 87 views
0

我见过的代码几次这样多参数函数冗余的第一个参数的默认值是多少?

function my_func($arg1 = '', $arg2, $arg3) { ... 

真的是没有办法使用的默认值$arg,对不对?由于需要$arg2以及更多,因此您总是必须指定$arg1的值,对吗?这意味着$arg1永远不会使用其默认值?

+0

这ISN根本不允许用Python,我也没有看到这方面的任何用处。 – Blender 2011-12-30 18:53:10

回答

4

PHP会引发严格的警告,因此非常沮丧。但是,它的行为像第一个参数不是可选的。所以你是对的:除非你自己设置(不再像默认值那样),否则从不使用默认值。

+0

同意。如果您使用遗留代码并在函数中编写处理程序(即,为第一个值传入NULL,然后使用is_null($ arg1)子句,则可以将预设值作为第一个参数传递,但最好重新排序函数定义中的参数 – 2011-12-30 19:00:41

1

是的,你是对是错的话,即使PHP不会显示在这种情况下,但任何好的IDE任何错误或警告将会显示警告...

enter image description here

+0

当你配置正确时,PHP会触发'E_STRICT'警告。 – KingCrunch 2011-12-30 19:35:26