1

可能重复:
具有无限数量参数的 PHP 函数

原始问题:

(向下滚动得出结论。)

我正在尝试围绕mysqli_stmt::bind_paramand创建一个简单的包装器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文件中。

4

0 回答 0