0
当我使用PHP来操纵数组时,我遇到了一个问题!通过引用传递失败?
这是如何工作的?
我想知道为什么!
而我发现如果我不使用'未设置',这段代码可以工作!而我谷歌,但没有得到答案! 所以我问!
当我在PHP中使用Passing by Reference时,它失败了!
谢谢!
<?php
$arr = array('a','b','c','d',array(1,2,3,4,5));
var_dump($arr);
foreach($arr as &$value){
if($value == 'c'){
unset($value);
}
if(is_array($value)){
foreach ($value as $key => &$v) {
if($v == 2){
unset($v);
}
}
}
}
var_dump($arr);
?>
这是结果:
array (size=5)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
4 =>
array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => int 5
array (size=5)
0 => string 'a' (length=1)
1 => string 'b' (length=1)
2 => string 'c' (length=1)
3 => string 'd' (length=1)
4 => &
array (size=5)
0 => int 1
1 => int 2
2 => int 3
3 => int 4
4 => &int 5
什么是“失败”?该代码在语法上是正确的 – zerkms 2013-03-12 00:46:39
nope。他正试图解除虚拟变量。您必须通过键名来取消实际的数组设置。 – 2013-03-12 00:48:04
我想它在语法上是正确的。我的错。只是不正确。 – 2013-03-12 00:49:23