php foreach循环中使用引用的问题

2015-01-24信息快讯网
看代码,再做解释
<?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]的值。
Codeigniter出现错误提示Error with CACHE directory的解决方案
PHP微框架Dispatch简介
PHP、Nginx、Apache中禁止网页被iframe引用的方法
php伪静态之APACHE篇
mac下Apache + MySql + PHP搭建网站开发环境
PHP的foreach中使用引用时需要注意的一个问题和解决方法
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
PHP引用(&)各种使用方法实例详解
php循环创建目录示例分享(php创建多级目录)
PHP循环结构实例讲解
浅谈PHP变量作用域以及地址引用问题
PHP变量的定义、可变变量、变量引用、销毁方法
php根据分类合并数组的方法实例详解
php用正则表达式匹配中文实例详解
php引用传值实例详解学习
在PHP上显示JFreechart画的统计图方法
php while循环得到循环次数
php函数间的参数传递(值传递/引用传递)
php一次性删除前台checkbox多选内容的方法
PHP循环函数使用介绍之PHP基础入门教程
PHP Switch 语句之学习笔记
深入解析php中的foreach函数
PHP函数preg_match_all正则表达式的基本使用详细解析
PHP引用符&的用法详细解析
浅析PHP原理之变量分离/引用(Variables Separation)
php中如何使对象可以像数组一样进行foreach循环
php接口与接口引用的深入解析
Smarty foreach控制循环次数的实现详解
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
深入解析php中的foreach问题
如何在smarty中增加类似foreach的功能自动加载数据
©2014-2024 dbsqp.com