在没有默认值的参数前面带有默认值的函数参数:会发生什么?

时间:2011-11-02 12:33:15

标签: php function arguments

(也许这个问题之前已经被问过了,但我找不到了。)

如果在PHP中没有默认值的参数前面有一个默认值的参数,会发生什么?就像这样:

function myfunction($foo = 12, $bar) {
    ...
}
  • PHP是否会出错?如果是,则报告错误报告级别?
  • 只用一个参数调用myfunction("hello")会发生什么?

1 个答案:

答案 0 :(得分:1)

是的,它会输出警告,而不是错误,即:

Warning: Missing argument 2 in call to myfunction() in FILE on line LINENO

如果你致电myfunction("hello")$bar未定义,那么它将是空字符串或NULL,$foo = "hello"。它只会引发警告,所以你的脚本仍会执行。

为什么不切换参数的顺序?

编辑:这里有一个很好的解释为什么不能在PHP中重载独立函数: PHP function overloading