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. RTP Tools

    RTP Tools (Version 1.20) https://wiki.wireshark.org/RTP_statistics Here is a small example: Install ...

  2. java 内部类、匿名内部类、嵌套类的使用

    我们都知道java的类能够由public.default(缺省.不写)来修饰,分别表示的含义是同意公开訪问以及仅仅同意包内其他类訪问,而同一包内的类一般是为完毕同一个功能而协作.      除此之外, ...

  3. vue打包后出现一些map文件的解决方法

    Vue打包后出现一些map文件的解决办法: 问题: 可能很多人在做vue项目打包,打包之后js中,会自动生成一些map文件,那我们怎么把它去掉不要呢? 1.运行  cnpm run build  开始 ...

  4. hibernate 启动和辅助类实现资源的重复使用

    来自API: 1.2.5.  启动和辅助类 是时候来加载和储存一些Event对象了,但首先我们得编写一些基础的代码以完成设置.我们必须启动Hibernate,此过程包括创建一个全局的SessoinFa ...

  5. 默认权限umask

    什么是umask? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?这就是umask干的事情.umask设置了用户创建文件的默认 权限,它与chmod的效果刚好相反,um ...

  6. 阿里云 oss python3 样例

    阿里云的oss SDK又是不支持python3,头疼头疼. 本想改一改它的SDK,让它支持python2+python3,无奈里面大量的代码使用不带括号的print.工作量恐怖. 幸好oss的使用很e ...

  7. Vue学习小结

    ES6 let完全可以取代var const声明一个只读的常量 箭头函数:可以绑定this对象,大大减少了显式绑定this对象的写法(call.apply.bind) 函数绑定(function bi ...

  8. jqplot使用小心得

    这两天做一个项目,需要画饼图,所以在网上搜到jqplot这个插件.下面就说说我对他的简单的使用心得. 先说说我想要的效果:1.我需要修改饼图每个部分的背景色 2.我需要修改饼图里面文本的颜色和字体大小 ...

  9. js中keydown和keypress的区别

    keydown和keypress这些事件是当一个对象具有焦点时进行按下或松开一个键时发生的. keydown在按下的时候返回键盘上的代码值,然后由TranslateMessage函数翻译成字符,并且由 ...

  10. centos7 crontab 定时执行python任务不执行的原因及解决办法

    1.问题描述 在用crontab设置定时任务时,发现py脚本在crontab中报错,显示import某些包找不到,但是手动直接运行py脚本,完全正常.   01 05 * * * ./get_topi ...