php foreach循环中使用引用的问题


Posted in PHP onNovember 06, 2013

看代码,再做解释

<?php 
$array=array('a','b','c','d'); 
foreach($array as $key=>$val){ 
    //do something 
} 
echo $val;//输出d 
echo $kay;//输出3 
$val='e'; 
print_r($array);//输出Array ( [0] => a [1] => b [2] => c [3] => d ) 
?>
 

在foreach循环中,当循环结束后,$key和$val变量都不会自动释放掉。值会被保留下来。
当foreach使用引用的情况下,会出现如下的情况,需要注意。
<?php 
$array=array('a','b','c','d'); 
foreach($array as $key=>&$val){//使用引用 
    //do something 
} 
echo $val;//输出d 
echo $kay;//输出3 
$val='e'; 
print_r($array);//输出Array ( [0] => a [1] => b [2] => c [3] => e ) 
?>
 

当$val变量使用&引用后,当执行foreach循环结束后,$val指向了和$arrar[3]相同的内存地址。
当foreach循环结束后$val变量还是存在的,所以在foreach循环结束后改变$val的值,就相当于改变了$arrar[3]的值。
PHP 相关文章推荐
PHP 危险函数解释 分析
Apr 22 PHP
phpmyadmin 3.4 空密码登录的实现方法
May 29 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
PHP数组及条件,循环语句学习
Nov 11 PHP
php密码生成类实例
Sep 24 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
May 12 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
AJAX的使用方法详解
Apr 29 PHP
thinkphp ajaxfileupload实现异步上传图片的示例
Aug 28 PHP
tp5框架使用composer实现日志记录功能示例
Jan 10 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
php用正则表达式匹配中文实例详解
Nov 06 #PHP
php引用传值实例详解学习
Nov 06 #PHP
php二维数组排序详解
Nov 06 #PHP
PHP Curl多线程原理实例详解
Nov 06 #PHP
php二维数组用键名分组相加实例函数
Nov 06 #PHP
php不用正则验证真假身份证
Nov 06 #PHP
php 中文字符串首字母的获取函数分享
Nov 04 #PHP
You might like
Django 标签筛选的实现代码(一对多、多对多)
2018/09/05 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
Javascript常用小技巧汇总
2015/06/24 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
jQuery判断浏览器并动态调整select宽度的方法
2016/03/02 Javascript
jQuery简单入门示例之用户校验demo示例
2016/07/09 Javascript
详解Vue.js动态绑定class
2016/12/20 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
详解使用vue-cli脚手架初始化Vue项目下的项目结构
2018/03/08 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
2019/05/16 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[20:46]Ti4循环赛第三日VG vs DK
2014/07/12 DOTA
[48:54]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第二场 6.3
2018/06/04 DOTA
搞笑的程序猿:看看你是哪种Python程序员
2015/06/12 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
详解通过focusout事件解决IOS键盘收起时界面不归位的问题
2019/07/18 HTML / CSS
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
生物科学专业个人求职信范文
2013/12/05 职场文书
书香家庭事迹材料
2014/05/09 职场文书
夏季药店促销方案
2014/08/22 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
Python自动化实战之接口请求的实现
2022/05/30 Python
HttpClient实现表单提交上传文件
2022/08/14 Java/Android