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实现的生成静态HTML速度快类库
Mar 31 PHP
深思 PHP 数组遍历的差异(array_diff 的实现)
Mar 23 PHP
一步一步学习PHP(7) php 字符串相关应用
Mar 05 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
Jun 30 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
PHP中配置IIS7实现基本身份验证的方法
Sep 24 PHP
php+html5实现无刷新图片上传教程
Jan 22 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 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
PHP 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
真正的JQuery.ajax传递中文参数的解决方法
2011/05/28 Javascript
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
仿百度输入框智能提示的js代码
2013/08/22 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
关于在Servelet中如何获取当前时间的操作方法
2016/06/28 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
深入浅析Vue中的slots/scoped slots
2018/04/03 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
详解Webpack4多页应用打包方案
2020/07/16 Javascript
python进阶教程之异常处理
2014/08/30 Python
Python用threading实现多线程详解
2017/02/03 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
pycharm 解除默认unittest模式的方法
2018/11/30 Python
Python图像处理实现两幅图像合成一幅图像的方法【测试可用】
2019/01/04 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
css3新单位vw、vh的使用教程
2018/03/23 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
美国休闲服装品牌:Express
2016/09/24 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
C语言编程题
2015/03/09 面试题
成教毕业生自我鉴定
2013/10/23 职场文书
公司慰问信范文
2015/03/23 职场文书
三十年同学聚会感言
2015/07/30 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
Python下opencv使用hough变换检测直线与圆
2021/06/18 Python