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.结果

aaarticlea/png;base64,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" alt="" />

3.原因:

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

php中数组中&的问题的更多相关文章

  1. JavaScript中数组中的方法:push()、pop()、shift()、unshift()、slice()、splice()、reverse()、join()、split()、concat()、indexOf()、forEach()、map()、

      1.创建数组的几种方法 //a).通过new来创建数组,new可以省略 var arr=new Array(); var arr=Array(); //b). .通过new来创建数组,并且赋值 v ...

  2. JavaScript中数组中遍历的方法

    前言 最近看了好几篇总结数组中遍历方法的文章,然而"纸上得来终觉浅",决定此事自己干.于是小小总结,算是自己练手了. 各种数组遍历方法 数组中常用的遍历方法有四种,分别是: for ...

  3. java中数组中一些方法的总结

    这个方法可以控制复制原数组的长度,想要复制多少就可以复制多少 这种复制方法不是特别灵活.只能复制整个数组或者对数组从首部开始进行截取.无法灵活的想复制哪里就复制哪里.因此一般用在数组的扩容上. jdk ...

  4. 接口返回值中数组中包含多个json对象形式

    返回数据Json: { "code": , "msg": "成功", "departmentlist": [ { &qu ...

  5. matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段

    一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...

  6. js从数组中随机取出不同的元素

    前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应 ...

  7. [LeetCode] Find All Numbers Disappeared in an Array 找出数组中所有消失的数字

    Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...

  8. [LeetCode] Find All Duplicates in an Array 找出数组中所有重复项

    Given an array of integers, 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and others ...

  9. [LeetCode] Kth Largest Element in an Array 数组中第k大的数字

    Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...

随机推荐

  1. webpack安装以及一些配置

    在用webpack之前... 或说没有实现组件化之前的web1.0时代! 最终迈向web2..0之后的时代! ===============华丽的分割线================== 安装步骤有 ...

  2. 解决树莓派新内核无法使用18B20和没有声音的问题

    现在新版的树莓派内核由于为了兼容树莓派2和树莓派B+等以前的版本,采用了和原来不同的内核运行方式,使用了设备树的方式,更加灵活.但是由于可能不习惯这样的方式以及没太多相关这方面的介绍,导致很多用户更新 ...

  3. android 从Activity 获取 rootView 根节点

    private static View getRootView(Activity context) { return ((ViewGroup)context.findViewById(android. ...

  4. 10-spring学习-注入Resource

    注入Resource 虽然Resource 的子类利用了字符串格式进行了隐藏,但是此时的代码中,ResourceLoader跟我的开发没有任何关系, 如果真的开发只关心Resource一个接口就够了. ...

  5. Android数据格式解析对象JSON用法

    1.JSON概念: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. JSON可以将 ...

  6. WebKit(Blink分支)各组件的创建与逻辑关系

    从render_view_impl.cc開始说起. 1.     方法RenderViewImpl::Initialize中有: WebLocalFrame* web_frame = WebLocal ...

  7. 常用 cdn

    http://www.bootcdn.cn/ jquery <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.j ...

  8. django源码分析----Related继承结构

    在django中关联关系大概可以分成many-to-one(foriegnkey).one-to-one.many-to-many 这三种.它们有如下的类结构 class RelatedField(F ...

  9. Atitit.随时间变色特效 ---包厢管理系统的规划

    Atitit.随时间变色特效 ---包厢管理系统的规划 1 流程滴定仪 定义的参数 颜色.位置(开始值,结束值,当前比值) >>返回数值 可以后期处理转成双位16进制码 分别定义复合颜色的 ...

  10. 用verilog表示两个4x4矩阵的乘法运算?及单个矩阵的求逆

    input[63:0] A0, //A0表示A矩阵的第一行 其中A0[63:48] A0 [47:32] A0[31:16] A0 [15:0]分别表示第一行中的四个元素(每个元素16位表示),下同i ...