您不能“不传递”不在参数列表末尾的参数:
>如果要指定第3个参数,则必须传递第1个和第2个参数
>如果你想指定第二个参数,你必须通过第一个参数 – 但是如果是optionnal,则可以省略第三个参数.
在您的情况下,您必须传递第二个参数的值 – 默认值,理想情况下;哪,是的,要求您知道该默认值.
一个可能的替代方案是你的函数没有3个参数,但只有一个,一个数组:
function my_function(array $params = array()) {
// if set, use $params['first']
// if set, use $params['third']
// ...
}
并调用这样的函数:
my_function(array(
'first' => 'plop',
'third' => 'glop'
));
这将允许您:
>接受任意数量的参数
>所有这些都可能是期权
但是:
>您的代码不太容易理解,文档也不太有用:没有命名参数>您的IDE无法提供有关函数接受哪些参数的提示