4

我知道您可以将可变数量的参数传递给函数并单独访问它们。

例如

function foo()
{
    $arg = func_get_arg(0);
    $arg += 10;
}

$a = 100;

foo($a);

echo "A is $a\n";

但是这些参数是按值传递的,如上所示。

是否可以使用它们,就好像它们以类似于bind_parammysqli 库中的函数的方式通过引用传递一样?

4

2 回答 2

1

你不能,只是你不能告诉 php 这是通过引用而不是,但是!我建议执行以下操作:

function foo()
{
    $arg = func_get_arg(0);
    $arg->val += 10;
}
$a =new stdClass();
$a->val = 100;
foo($a);
echo "$a\n"; // 110 

您可以将拳击应用于您想要的值并且它有效,希望您觉得这对您有所帮助,如果您有任何问题,请提出。

于 2013-03-10T11:45:37.677 回答
1

我想提的第一件事:不要使用引用

除此之外:直接这样做是不可能的,因为引擎必须在调用函数之前知道某些东西是否是引用。你可以做的是传递一个引用数组:

$a = 1; $b = 2; $c = 3;
$parameters = array(&$a, &$b, &$c, /*...*/);
func($parameters);

function func(array $params) {
    $params[0]++;
}
于 2013-03-10T12:08:56.983 回答