您可以通过传递对象而不是数组来保持phpdoc和设置默认值的能力,例如。
class FooOptions { $opt1 = 'x'; $opt2 = 'y'; /* etc */ };
如果要执行以下操作,还可以在函数调用中执行严格的类型检查:
function foo (FooOptions $opts) { ... }
当然,您可能会为设置foooptions对象而付出额外的代价。不幸的是,这里没有完全免费的交通工具。