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 相关文章推荐
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
phpmyadmin3 安装配置图解教程
Mar 29 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
Jun 25 PHP
php实现的返回数据格式化类实例
Sep 22 PHP
ThinkPHP独立分组使用的注意事项
Nov 25 PHP
PHP数组相关函数汇总
Mar 24 PHP
Yii视图CGridView实现操作按钮定义地址示例
Jul 14 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
php workerman定时任务的实现代码
Dec 23 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
php+websocket 实现的聊天室功能详解
May 27 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版 汉字转码的实现详解
2013/06/09 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PHP笛卡尔积实现原理及代码实例
2020/12/09 PHP
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
定义JavaScript二维数组采用定义数组的数组来实现
2012/12/09 Javascript
JavaScript function函数种类详解
2016/02/22 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
2017/11/27 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
浅谈Vue的响应式原理
2019/05/30 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Python3.5多进程原理与用法实例分析
2019/04/05 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
Python对接六大主流数据库(只需三步)
2019/07/31 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python netmiko模块的使用
2020/02/14 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
2014村务公开实施方案
2014/02/25 职场文书
学习十八大坚定理想信念心得体会
2014/03/11 职场文书
租房协议书样本
2014/08/20 职场文书
甘南现象心得体会
2014/09/11 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
2014年文员工作总结
2014/11/18 职场文书
2015年幼儿园学期工作总结
2015/05/22 职场文书
创业计划书之游泳馆
2019/09/16 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android