TaoGOGO的技术博客,始于2007年,通过文字分享技术、记录生活

php的foreach引用赋值的问题

2013-02-22

今天汉城跑到我们这里来问了个问题,下面的代码为啥第二次打印出:

Array
(
    [a] => aa
    [b] => bb
    [c] => bb
)

代码:

<?php

$a = array(
    'a' => 'aa',
    'b' => 'bb',
    'c' => 'cc',
);
foreach( $a  as &$v){
;
}
print_r($a);


foreach( $a  as $v){

}

print_r($a);

----------------------

仔细想想,其实是简单的引用问题,第一次foreach完毕,$v实际是$a['c']的引用,循环时,每次对$v的赋值都会会改变$a['c']的值,而最后一次对$v的赋值是$v=$a['c'],$a['c']在上一次被赋值为$a['b'],所以会会出现上述情况。

类别: | 阅读:178544 | 评论:3 | 标签:php foreach

想收藏或者和大家分享这篇好文章→

“php的foreach引用赋值的问题”共有3条留言

  1. lixiphp @2013-03-12 23:33 回复

    语法上的问题,总结的好。

  2. taogogo @2013-03-08 14:02 回复

    @qfgz306 不是。。。

  3. qfgz306 @2013-02-26 18:02 回复

    是不是重复调取呢

发表评论

姓名:

邮箱:

网址:

验证码:

公告

҉百度内部推荐,高级研发/PM(需2年以上工作经验)。
有意者微博私信联系~

微博言语

文章分类