是否可以创建一个 PHP 函数,该函数采用可变数量的参数(所有参数均通过引用)?
它对通过引用接收值数组的函数和将其参数包装在对象中的函数没有帮助,因为我正在研究函数组合和参数绑定。
也不要考虑调用时间传递引用。那东西根本不应该存在。
PHP 5.6 推出新的可变参数语法 http://php.net/manual/en/functions.arguments.php#functions.variable-arg-list.new它支持引用传递。 (感谢@outis 的更新)
function foo(&...$args) {
$args[0] = 'bar';
}
对于 PHP 5.5 或更低版本,您可以使用以下技巧:
function foo(&$param0 = null, &$param1 = null, &$param2 = null, &$param3 = null, &$param4 = null, &$param5 = null) {
$argc = func_num_args();
for ($i = 0; $i < $argc; $i++) {
$name = 'param'.$i;
$params[] = & $$name;
}
// do something
}
缺点是参数的数量受到定义的参数数量的限制(示例片段中为 6)。
但使用 func_num_args() 您可以检测是否需要更多。
无论如何,向函数传递超过 7 个参数都是不好的做法;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)