PHP 在函数参数中设置第三个可选参数,而不设置第二个可选参数


PHP set a third optional parameter in the function arguments without setting the second optional parameter?

有点棘手的问题,但如果您稍后必须修改脚本以添加第三个可选的参数,这可以节省大量时间,而第二个也是可选的,并且大多数情况下它被用作第二个参数未设置,现在当您添加第三个参数时,您必须遍历所有位置以找到代码片段并添加/设置第二个,然后添加第三个..

有没有简单的方法可以做到这一点?

例:

  public static function result($sql, $i = 0, $r = 0) {
  //code
  } 

如果我们需要添加第三个$r,稍后和大多数时候如果代码用作

 result($sql);

现在到处我都必须扫描和做

 result($sql,0,10);

有没有一种简单的方法可以在不设置第二个参数的情况下设置第三个参数?

否,

这是不可能的,但是您可能需要考虑将可选参数设置为 null,然后在函数中设置默认值。

例如:

public static function result($sql, $i = null, $r = null) {
   if(is_null($i)){
       $i="default";
   }
   ... etc
} 

这样,您可以维护函数中的默认值,而不必在整个代码库中复制它。

添加可能的参数数组

public static function result($sql, $settings=null) {
  if(is_array($settings) {
    if(isset($settings['i']) {
       // condition code
    }
    if(isset($settings['r']) {
      // condition code
    }
  }
  // normal code
}