foreach 更改最后一个元素
可能的重复:
foreach 的奇怪行为
为什么 PHP 有时会更改数组的最后一个元素?
我有一个数组:
Array
(
[0] => a_
[1] => b_
[2] => c_
[3] => d_
)
当我尝试打印所有 emenets 时。输出是:
a_
b_
c_
c_
完整代码是:
<?
$a = array('a', 'b', 'c', 'd');
foreach ($a as &$value)
$value = "{$value}_";
print_r($a);
foreach ($a as $value) {
echo "$value\n";
}
为什么?
Possible Duplicate:
Strange behavior Of foreach
Why PHP sometimes change last element of array?
I have a array:
Array
(
[0] => a_
[1] => b_
[2] => c_
[3] => d_
)
When I try print out all emenets. And output is:
a_
b_
c_
c_
Full code is:
<?
$a = array('a', 'b', 'c', 'd');
foreach ($a as &$value)
$value = "{$value}_";
print_r($a);
foreach ($a as $value) {
echo "$value\n";
}
Why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
在第二个循环中使用不同的变量名称或在第一个循环后取消设置 $value 将解决此问题。
Either using a different variable name in your second loop or unsetting $value after your first one will solve this problem.
看起来 php 弄乱了你的例子中的指针地址:
你不能这样写吗:
Looks like php messes up the pointer adress in your example:
Can't you write it like this: