【问题标题】:What are the rules about calling PHP functions with not enough parameters?没有足够参数调用PHP函数的规则是什么?
【发布时间】:2011-10-03 20:41:22
【问题描述】:

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

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

所以当我调用它时,我可能会调用myFunction("something") 或者我可能会调用myFunction("something", "something else")

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

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

所以它可以工作,但显然开发人员对此并不满意。

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

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

【问题讨论】:

    标签: php parameters arguments optional-parameters


    【解决方案1】:

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

    function myFunction($arg1, $arg2 = false)

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

    myFunction('something');

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

    【讨论】:

      【解决方案2】:

      你可以在你的函数声明中设置它:

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

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          【讨论】:

            【解决方案5】:

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2022-10-18
              • 2021-05-29
              • 1970-01-01
              • 1970-01-01
              • 2017-08-25
              • 1970-01-01
              • 2020-06-04
              相关资源
              最近更新 更多