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 09 PHP
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
php中使用临时表查询数据的一个例子
Feb 03 PHP
2个Codeigniter文件批量上传控制器写法例子
Jul 25 PHP
php实现模拟登陆方正教务系统抓取课表
May 19 PHP
php实现的mongodb操作类
May 28 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
php关闭warning问题的解决方法
May 17 PHP
php字符串的替换,分割和连接方法
May 23 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
PHP排序二叉树基本功能实现方法示例
May 26 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
Flash空降上海 化身大魔王接受挑战
2020/03/02 星际争霸
php常用Output和ptions/Info函数集介绍
2013/06/19 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
用YUI做了个标签浏览效果
2007/02/20 Javascript
JS遮罩层效果 兼容ie firefox jQuery遮罩层
2010/07/26 Javascript
Iframe自适应高度绝对好使的代码 兼容IE,遨游,火狐
2011/01/27 Javascript
浅谈Javascript面向对象编程
2011/11/15 Javascript
详解Node.js模块间共享数据库连接的方法
2016/05/24 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
redux.js详解及基本使用
2019/05/24 Javascript
Vue实现滑动拼图验证码功能
2019/09/15 Javascript
[44:15]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第二局
2016/03/06 DOTA
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python编写网页爬虫脚本并实现APScheduler调度
2014/07/28 Python
用Python编写生成树状结构的文件目录的脚本的教程
2015/05/04 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Python3.7 pyodbc完美配置访问access数据库
2019/10/03 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
python如何删除列为空的行
2020/07/17 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
优秀员工表扬信
2014/01/17 职场文书
草船借箭教学反思
2014/02/03 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
Python实现打乒乓小游戏
2021/09/25 Python
浅谈克隆 JavaScript
2021/11/02 Javascript