PHP在foreach中通过引用传递 [英] PHP Pass by reference in foreach
本文介绍了PHP在foreach中通过引用传递的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有此代码:
$a = array ('zero','one','two', 'three');
foreach ($a as &$v) {
}
foreach ($a as $v) {
echo $v.PHP_EOL;
}
有人可以解释为什么输出是: 零一二二.
Can somebody explain why the output is: zero one two two .
摘自zend认证学习指南.
From zend certification study guide.
推荐答案
由于在第二个循环中,$v
仍是对最后一个数组项的引用,因此每次都会被覆盖.
Because on the second loop, $v
is still a reference to the last array item, so it's overwritten each time.
您可以看到以下内容:
$a = array ('zero','one','two', 'three');
foreach ($a as &$v) {
}
foreach ($a as $v) {
echo $v.'-'.$a[3].PHP_EOL;
}
如您所见,最后一个数组项采用当前循环值:零",一个",两个",然后只是两个" ...:)
As you can see, the last array item takes the current loop value: 'zero', 'one', 'two', and then it's just 'two'... : )
这篇关于PHP在foreach中通过引用传递的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文