可能重复:
具有无限数量参数的 PHP 函数
原始问题:
(向下滚动得出结论。)
我正在尝试围绕mysqli_stmt::bind_param
and创建一个简单的包装器mysqli_stmt::bind_result
。基本上,调用该函数,并返回有关收到的任何错误的一些信息,所以我不必一次又一次地重写这几行。
由于这两个 mysqli 函数都将其参数作为引用而不是副本,因此我需要让我的函数将其参数作为引用。mysqli_stmt::execute
(如果我绑定到副本而不是引用,这也会迫使我每次调用时都重新绑定。)
所以,理想情况下,我希望能够定义一个采用任意数量引用的函数,就像 mysqli 函数本身一样:
public function foo(&$var1, &$var2, ...)
{
...
}
如果做不到这一点,我将需要定义一个带有引用数组的函数。我知道引用的语法如上所示。是否有引用数组的语法,
public function foo($var[&$i])
{
...
}
像这样?
未来尝试相同事物的人的结论/信息:
基本上,您不能定义一个接受任意数量参数的函数,这些参数是通过引用来的。从答案、评论和其他问题来看,PHP 函数具有无限数量的参数,看起来几乎是不可能完成的任务。
一个廉价的 hack,在技术上可行,将定义一个像这样的函数:
function foo(&$arg1, &$arg2 = null, &$arg3 = null, ...)
{
echo $arg1;
if ($arg2 != null)
echo br() . $arg2;
...
return 0;
}
基本上,定义一个函数,假设有一百个参数,通过引用传递,除了第一个默认为空。然后,您可以使用从 1 到 100 的任意数量的参数调用它,所有参数都通过引用传递。诀窍是你不想自己编写这个怪物。编写一个脚本来生成这个函数,并将其粘贴在它自己的my-horribly-long-function.php文件中。