首页 > 编程语言 > 详细

php中数组中&的问题

时间:2016-04-20 09:22:44      阅读:212      评论:0      收藏:0      [点我收藏+]

1.代码:

<?php
$arr = array(‘one‘,‘two‘,‘three‘); 

foreach ($arr as $value){ 
    echo ‘Value:‘.$value.‘<br />‘; 
} 
echo ‘<hr/>‘;

foreach ($arr as &$value){
 echo ‘Value:‘.$value.‘<br />‘; 
} 
echo ‘<hr/>‘;
// reset($arr);

foreach ($arr as $value){ 
    echo ‘Value:‘.$value.‘<br />‘; 
} 


?>

2.结果

技术分享

3.原因:

第一次带&的foreach并没有改变数组的内容。。
而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),
在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。
第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,
所以
第一次循环把one赋值给了最后一个值,
第二次把two赋值给最后一个,
第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two。
 

php中数组中&的问题

原文:http://www.cnblogs.com/wuheng1991/p/5411149.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!