【发布时间】:2017-12-15 14:03:39
【问题描述】:
出于可扩展性的目的,我通常将参数作为关联数组传递给函数(因为数组很容易更改)并在函数中传递extract():
$a = 'a'; ....... $n = 'n';
$arg = array(
'a' => $a,
.
.
'n' => $n
);
function doStuff($arg) {
extract($arg);
// etc
}
但是我没有尝试做同样的事情,而是通过引用传递 $arg 的变量组件。例如,要得到如下结果:
$a = 'x';
我可以这样做:
$a = 'a';
function doStuff(&$var) {
$var = 'x';
}
doStuff($a);
echo $a; // ---> echoes 'x'
您如何使用提取方法做到这一点?例如,以下回显“a”,而不是“x”:
$a = 'a'; ....... $n = 'n';
$arg = array(
'a' => $a,
.
.
'n' => $n
);
function doStuff(&$arg) {
extract($arg);
$a = 'x';
}
doStuff($arg);
echo $a; // echoes 'a'
我也试过这个:
$arg = array(
'a' => &$a,
.
.
'n' => $n
);
是否可以在这里使用extract() 使(在这种情况下)$a echo as 'x' ?
【问题讨论】:
标签: php pass-by-reference