其他提示

5.6 PHP引入新可变参数的语法支持通过按引用。最后一个参数前缀与...函数声明为一个数组,将持有的任何实际的参数,从这一点上。该阵列可被声明通过进一步前缀与...&令牌持有的引用,如为其他参数进行,有效地使参数传递逐参考文献

实施例1:

function foo(&...$args) {
    $args[0] = 'bar';
}
foo($a);
echo $a, "\n";
#  output:
#a

实施例2:

function number(&...$args) {
    foreach ($args as $k => &$v) {
        $v = $k;
    }
}
number($zero, $one, $two);
echo "$zero, $one, $two\n";
#  output:
#0, 1, 2

您应该能够通过所有的参数包裹在对象的


Class A
{
    public $var = 1;
}

function f($a)
{
    $a->var = 2;
}

$o = new A;
printf("\$o->var: %s\n", $o->var);
f($o);
printf("\$o->var: %s\n", $o->var);

应打印 1 2

它是可能的:

$test = 'foo';
$test2 = 'bar';

function test(){
    $backtrace = debug_backtrace();
    foreach($backtrace[0]['args'] as &$arg)
        $arg .= 'baz';
}

test(&$test, &$test2);

然而,这由被弃用参考使用呼叫时通

编辑:对不起,我没有看到你想让他们引用....所有你需要做的就是将它们作为一个对象

您还可以通过他们在例如阵列

myfunction(array('var1' => 'value1', 'var2' => 'value2'));

然后在功能你只需

myfunction ($arguments) {

echo $arguments['var1'];
echo $arguments['var2'];

}

所述阵列也可以嵌套。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top