【问题标题】:PHP function building a default variables? [duplicate]PHP函数构建一个默认变量? [复制]
【发布时间】:2012-06-03 15:41:10
【问题描述】:

我正在尝试构建一个具有 2 个默认值的函数,但在某些情况下我只需要提供第一个参数,而其他只需要提供第二个参数。 PHP中有没有一种方法可以做到这一点,或者有没有一种方法可以做我想做的被认为是标准的事情?

例子

function ex($a, $b = null, $c = null) {
    ....
}

ex($a, $b, $c) // WORKS FINE

ex($a) // WORKS FINE

ex($a, $b) // WORKS FINE

ex($a, $c) // WANT VAR C TO BE VAR C IN THE FUNCTION AND NOT VAR B

谢谢

【问题讨论】:

  • 但是函数如何判断$c是第二个还是第三个参数?
  • 如果你想要关键字参数而不是位置参数,我建议你切换到 Python。然后你可以做ex(a, c=c)

标签: php function


【解决方案1】:
ex($a, $c) // WANT VAR C TO BE VAR C IN THE FUNCTION AND NOT VAR B

跳过第二个参数:

ex($a, null, $c);

Learn more on official docs

【讨论】:

  • 我太笨了!不过我正在学习!
【解决方案2】:

只要这样称呼它:

ex($a, null, $c);

【讨论】:

    【解决方案3】:

    你可以使用关联数组

    考虑以下代码:

    <?php
    
    function tryThis($parms)
    {
      $defaults = array(
          'a' => 5,
          'b' => null,
          'c' => 'Wibble' );
       $parms = array_merge($defaults, $parms);
       var_dump($parms);
    }
    
    // Use it as follows
    
    tryThis(array('a'=>7, 'c'=>'Hello'));
    tryThis(array('b'=>'Hi There'));
    
    ?>
    

    它使人们可以将参数按任何顺序排列,并允许任何参数的默认值。唯一的缺点是你必须通过关联的数组来访问参数。

    【讨论】:

      猜你喜欢
      • 2013-12-14
      • 1970-01-01
      • 2015-06-12
      • 2020-05-14
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多