bzz*_*zzb 14 php variables arguments function pass-by-reference
我有php函数,它具有无限数量的args,我从func_get_args()获得.我有一些带参数的操作(改变字符串或做某事),我希望它像引用的传递参数.可能吗?
例:
$test = 'foo';
$test2 = 'bar';
function test(){
$args = func_get_args();
foreach($args as $arg)
$arg .= 'baz';
}
test($test, $test2);
Run Code Online (Sandbox Code Playgroud)
Mar*_*sch 15
从PHP-5.6开始,您可以使用可变参考:
function test(&...$args) {
foreach ($args as &$arg) {
$arg .= 'baz';
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*her 12
正如在PHP中所回答的那样:通过引用可变长度参数列表?,PHP中没有办法将变长和传递引用函数参数组合在一起.相反,链接的答案使用声明100 &argx秒的黑客,然后get_num_args()用来计算实际使用了多少.恭喜,你在PHP中发现了一个特别困难的角落;)
我非常怀疑这是可能的,但我确实知道一种方法可以得到你想要的东西:
function test(&$args) {
foreach ($args as $arg) {
$arg .= 'baz';
}
}
test(array(&$test, &$test2));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3503 次 |
| 最近记录: |