关于调用没有足够参数的PHP函数的规则是什么?

时间:2011-07-12 17:45:59

标签: php parameters arguments optional-parameters

我有一个函数,它接受两个参数,但我希望第二个参数是可选的:

function myFunction($arg1, $arg2) {
  //blah
  //blah
  if (isset($arg2)) {
    //blah
  } else {
    //blah
  }
}

所以,当我打电话给我时,我可能会myFunction("something")或我可能会myFunction("something", "something else")

当我只包含一个参数时,PHP会发出以下警告:

  

警告:缺少myFunction()的参数2,...

所以它有效,但显然开发人员对它不屑一顾。

这样做是否可以,或者当我不想使用它并测试它时,我应该将""false0传递给第二个参数使用isset()

我注意到很多人在JavaScript中调用函数时错过了参数,这就是为什么我要问它是否也在PHP中完成。

5 个答案:

答案 0 :(得分:6)

通过将一些参数设置为可选/将其设为默认值来完成:

function myFunction($arg1, $arg2 = false)

然后你可以这样调用这个函数:

myFunction('something');

myFunction('something', 'something else');

答案 1 :(得分:3)

您可以在功能声明中设置它:

function myFunction($arg1, $arg2 = NULL) {

这样,第二个参数是可选的。请注意,可选参数必须在最后,后面不能有任何非可选参数。

答案 2 :(得分:1)

您需要在函数声明中为参数设置默认值,如下所示:

function myFunction($arg1, $arg2 = false) {
  //blah
  //blah
  if (isset($arg2)) {
    //blah
  } else {
    //blah
  }
}

答案 3 :(得分:0)

答案 4 :(得分:0)

在函数中定义参数的默认值:

public function foo($arg1, $arg2 = 'default') {
    //yourfunction 
}