zoukankan      html  css  js  c++  java
  • php中数组中&的问题

    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。
     
  • 相关阅读:
    SetTransform
    D3DXCreateText
    《高级游戏特性实现》考试样题
    KeyUp
    .FX File
    CMD
    X File Class
    《DirectX游戏设计》考试样题
    ps图片处理效果——很nice哦
    学习篇:来点水货要天天学习!!!
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/5411149.html
Copyright © 2011-2022 走看看