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与SQL注入攻击[二]
Apr 17 PHP
php模板之Phpbean的目录结构
Jan 10 PHP
php将数据库导出成excel的方法
May 07 PHP
php MessagePack介绍
Oct 06 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
php计算数组相同值出现次数的代码(array_count_values)
Jan 20 PHP
php插入排序法实现数组排序实例
Feb 16 PHP
护卫神php套件 php版本升级方法(php5.5.24)
May 10 PHP
谈谈 PHP7新增功能
Dec 16 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
利用php操作memcache缓存的基础方法示例
Aug 02 PHP
PHP超级全局变量【$GLOBALS,$_SERVER,$_REQUEST等】用法实例分析
Dec 11 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
原生js验证简洁注册登录页面
2016/12/17 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
vue3.0 上手体验
2020/09/21 Javascript
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
Python简单计算给定某一年的某一天是星期几示例
2018/06/27 Python
详解python数据结构和算法
2019/04/18 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
2020/05/07 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
Clarks英国官方网站:全球领军鞋履品牌
2016/11/26 全球购物
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
MADE法国:提供原创设计师家具
2018/09/18 全球购物
工商企业管理实习自我鉴定
2013/12/04 职场文书
技校生自我鉴定
2013/12/08 职场文书
挂科检讨书范文
2014/02/20 职场文书
毕业生欢送会主持词
2014/03/31 职场文书
十佳少年事迹材料
2014/12/25 职场文书
Python基础之Socket通信原理
2021/04/22 Python
如何在python中实现ECDSA你知道吗
2021/11/23 Python