1
9
默认参数是PHP处理缺少重载函数的方法。在爪哇,你可以这样写:
在PHP中,您必须这样解决它:
这样,$username是必需的,$password是可选的。虽然这可能很方便,但并非总是如此。在您的示例中,有一个参数日志,它们都是可选的。为此,一个干净的解决方案是使1个完成工作的函数,并添加“便利”方法以使接口更干净。 因此添加:
它只调用已经存在的函数,但它允许更干净的接口,只调用:
将所提供的方法设为私有(或受保护,具体取决于您的需要)并创建公共的“方便”方法,这样您就可以隐藏实现细节。 但是,如果您不能或不想更改原始类,则可以创建子类。 |
2
1
改变论点的顺序是可能的…但现在你还需要另一个理由
更多选择
“或”
较少选择的
“?你能再换一次吗?
为了只传递第三个参数,考虑到函数的声明,我看到的唯一方法是给出前三个参数…传递默认值 (当然,你必须知道——看看它的声明) 对于前两个:
在我看来,用这个代替那个:
具有显式的优点:查看函数声明的人会立即注意到前两个参数使用的是默认值。
使用
不管怎样,您都将失去IDE向您显示函数等待参数的能力;这很糟糕:-(
|
3
1
除了 Mythicas excellent answer 我只想指出另一种处理大量可选参数的方法:数组。
这基本上完全绕过了phps可选/必需的参数语法,而自定义在内部处理这些事情。它的优点是避免了您描述的问题,并使函数调用非常可读。问题是它使函数更加复杂,并且您不能利用PHP检查参数的存在。 |
4
0
最简单的方法就是改变参数的顺序,使$group成为第一个。 |
5
-1
但实际上,糟糕的编码风格。 |
Jacco · 未能格式化我的日期以在php中正确工作 1 年前 |
jay ram · 如何在URL核心php中从API获取JSON? 1 年前 |
Ishwarya A · php电子表格在浏览器中显示多张excel 1 年前 |