PHP在foreach中通过引用传递 [英] PHP Pass by reference in foreach

查看:89
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆