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

时间:2012-06-28 09:27:32

标签: php

有点棘手的问题,但如果你以后必须修改脚本以添加第三个参数是可选的,这会节省大量时间,而第二个也是可选的,并且大多数它被用作第二个参数未设置,现在当你添加你必须在任何地方扫描的第三个参数来查找代码片段并添加/设置第二个然后添加第三个参数..

有一种简单的方法吗?

示例:

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

如果我们需要添加第三个$ r,稍后会在大部分时间内添加代码

 result($sql);

现在无处不在我必须扫描并做

 result($sql,0,10);

有没有简单的方法来设置第三个参数而不设置第二个参数?

2 个答案:

答案 0 :(得分:2)

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

例如:

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

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

答案 1 :(得分:0)

添加一系列可能的参数

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
}