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 相关文章推荐
xml+php动态载入与分页
Oct 09 PHP
PHP中通过ADO调用Access数据库的方法测试不通过
Dec 31 PHP
php中显示数组与对象的实现代码
Apr 18 PHP
MySQL连接数超过限制的解决方法
Jul 17 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
php读取txt文件组成SQL并插入数据库的代码(原创自Zjmainstay)
Jul 31 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
Thinkphp关闭缓存的方法
Jun 26 PHP
php四种定界符详解
Feb 16 PHP
PHP常见字符串操作函数与用法总结
Mar 04 PHP
php生成微信红包数组的方法
Sep 05 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内置过滤器FILTER使用实例
2014/06/25 PHP
php读取本地json文件的实例
2018/03/07 PHP
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
JavaScript中关于indexOf的使用方法与问题小结
2010/08/05 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
jQuery EasyUI 菜单与按钮之创建简单的菜单和链接按钮
2015/11/18 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
python打开文件并获取文件相关属性的方法
2015/04/23 Python
python删除指定类型(或非指定)的文件实例详解
2015/07/06 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
python 内置模块详解
2019/01/01 Python
python设置环境变量的作用和实例
2019/07/09 Python
简单了解django缓存方式及配置
2019/07/19 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
经验丰富程序员才知道的8种高级Python技巧
2020/07/27 Python
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
介绍一下MD5加密算法
2016/11/12 面试题
应届大专毕业生个人自荐信
2013/09/22 职场文书
绩效工资分配方案
2014/01/18 职场文书
测控技术自荐信
2014/06/05 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
地道战观后感500字
2015/06/04 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python