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利用COM对象访问SQLServer、Access
Oct 09 PHP
中英文字符串翻转函数
Dec 09 PHP
php通过数组实现多条件查询实现方法(字符串分割)
May 06 PHP
php自动识别文件编码并转换为UTF-8的方法
Jun 12 PHP
php保存二进制原始数据为图片的程序代码
Oct 14 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
php实现zip文件解压操作
Nov 03 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
php微信公众号开发模式详解
Nov 28 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
php微信公众号开发之欢迎老朋友
Oct 20 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
Oct 23 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
全国FM电台频率大全 - 27 陕西省
2020/03/11 无线电
php下使用iconv需要注意的问题
2010/11/20 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
拉动滚动条加载数据的jquery代码
2012/05/03 Javascript
JQueryEasyUI Layout布局框架的使用
2013/04/08 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js实现简单排列组合的方法
2016/01/27 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
jQuery EasyUI 右键菜单--关闭标签/选项卡的简单实例
2016/10/10 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
React Native日期时间选择组件的示例代码
2018/04/27 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
2020/12/04 Vue.js
MySQL最常见的操作语句小结
2015/05/07 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Django框架表单操作实例分析
2019/11/04 Python
html5 分层屏幕适配的方法
2018/03/16 HTML / CSS
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
暂停营业通知
2015/04/25 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
民事调解协议书
2016/03/21 职场文书
学校2016年全国助残日活动总结
2016/04/01 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL