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.结果
aaarticlea/png;base64,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" alt="" />
3.原因:
第一次带&的foreach并没有改变数组的内容。。
而是最后一次循环$value引用了数组的最后一个项 (可以测试一下,在第一次循环结束后unset($value),第二次循环的结果就不会有变化),
在你第二个foreach也是使用的$value变量,这才造成了怪异的问题(可以换个变量,比如$val,输出的数组就不会有变化)。
第二个foreach是赋值给$value,但是这时的$value是引用的数组的最后一个值,
所以
第一次循环把one赋值给了最后一个值,
第二次把two赋值给最后一个,
第三次也就是最后一个已经在第二次循环被赋值为two,所以仍然是two。
php中数组中&的问题的更多相关文章
- 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 ...
- JavaScript中数组中遍历的方法
前言 最近看了好几篇总结数组中遍历方法的文章,然而"纸上得来终觉浅",决定此事自己干.于是小小总结,算是自己练手了. 各种数组遍历方法 数组中常用的遍历方法有四种,分别是: for ...
- java中数组中一些方法的总结
这个方法可以控制复制原数组的长度,想要复制多少就可以复制多少 这种复制方法不是特别灵活.只能复制整个数组或者对数组从首部开始进行截取.无法灵活的想复制哪里就复制哪里.因此一般用在数组的扩容上. jdk ...
- 接口返回值中数组中包含多个json对象形式
返回数据Json: { "code": , "msg": "成功", "departmentlist": [ { &qu ...
- matlab学习笔记12_2创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段
一起来学matlab-matlab学习笔记12 12_2 结构体 创建结构体数组,访问标量结构体,访问非标量结构体数组的属性,访问嵌套结构体中的数据,访问非标量结构体数组中多个元素的字段 觉得有用的话 ...
- js从数组中随机取出不同的元素
前言 上午处理个需求需要从一个总数组中随机取出不同的元素.共使用两个方法.第一种方法较常规,经测试有bug,数据量大以后随机几次返回的对象直接是function而不是object. 当然简单数据类型应 ...
- [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 ...
- [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 ...
- [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 ...
随机推荐
- asp 按钮 调用ajax时 会出现返回错误,尽量使用html按钮进行调用
asp 按钮 调用ajax时 会出现返回错误,尽量使用html按钮进行调用
- HDU 4554 叛逆的小明
叛逆的小明 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Submiss ...
- 微信小程序小红点未读消息如何实现?
如图类似的 这样的需求还挺多的,那么如何实现呢? data: { userInfo: {}, projectSource: 'https://github.com/liuxuanqiang/wec ...
- Drupal所能够理解的资源
Drupal能够识别哪些资源类型? profile,不知道怎么翻译,应该是指安装类型,固定地存放于profiles目录下. module,模块,可以存在于多个目录下:modules.profiles/ ...
- 基于shiro+jwt的真正rest url权限管理,前后端分离
代码地址如下:http://www.demodashi.com/demo/13277.html bootshiro & usthe bootshiro是基于springboot+shiro+j ...
- jenkins部署前端node项目实例
Jenkins 分发文件用到rsync命令 在 /etc/passwd中 修改 jenkins 为 /bin/bash jenkins:x:494:494:Jenkins Automation S ...
- yii xss模型安全
在这篇文章里,我们将描述一个基于WEB应用下避免不合法的内容注入. 我们要在一个行为里使用htmlpurifier类,用这种行为可以加强任何模型并表明各属性我们想让它们XSS安全. 我写了以下行为: ...
- xib autolayout subview
http://sebastiancelis.com/2014/06/12/using-xibs-layout-custom-views/ initWitchCoder 有点小问题
- worker
<script id="worker" type="app/worker"> addEventListener('message', functio ...
- Java并发编程(八):线程调度——线程池
new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { / ...