不,这是不可能的:如果你想通过第三个参数,你必须通过第二个参数。并且命名参数也是不可能的。
一个“解决方案”是只使用一个参数,一个数组,并且总是通过它…但不要总是定义其中的一切。
例如:
function foo($params) {
var_dump($params);
}
这样称呼:
foo(array(
'a' => 'hello',
));
foo(array(
'a' => 'hello',
'c' => 'glop',
));
foo(array(
'a' => 'hello',
'test' => 'another one',
));
将获得以下输出:
array
'a' => string 'hello' (length=5)
array
'a' => string 'hello' (length=5)
'c' => string 'glop' (length=4)
array
'a' => string 'hello' (length=5)
'test' => string 'another one' (length=11)
但我不太喜欢这样的解决方案:
-
你会失去phpdoc的
-
您的IDE将不能提供任何提示了…哪一个不好
因此,我只在非常具体的情况下才这样做,例如对于具有很多opTyn参数的函数,例如…