php foreach循环中使用引用的问题
2013-11-06 00:00
525 查看
看代码,再做解释
在foreach循环中,当循环结束后,$key和$val变量都不会自动释放掉。值会被保留下来。
当foreach使用引用的情况下,会出现如下的情况,需要注意。
当$val变量使用&引用后,当执行foreach循环结束后,$val指向了和$arrar[3]相同的内存地址。
当foreach循环结束后$val变量还是存在的,所以在foreach循环结束后改变$val的值,就相当于改变了$arrar[3]的值。
<?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 foreach循环中使用引用的问题
- 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
- Angular4---认证---使用HttpClient拦截器,解决循环依赖引用的问题
- UIAlertController基本使用和循环引用问题
- 最近在使用swift写代码时碰到block引用循环的问题。记下一笔以免忘记。
- #include、#import与@class的使用与头文件循环引用问题
- php foreach中使用了传值引用&赋值可能造成的问题
- php foreach 使用&(与运算符)引用赋值要注意的问题
- swift协议代理的使用以及解决循环引用问题
- php foreach循环关于&引用的问题
- MRC和ARC下使用block的循环引用问题
- swift protocol 协议代理的使用以及解决循环引用问题
- php foreach 使用&(与运算符)引用赋值要注意的问题
- 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
- iOS细节篇-block循环引用问题,和block安全使用方法
- 使用 EntityFramework后把一个对象序列化成json字符串引起循环引用的问题
- Objective-c中block使用时的循环引用问题
- #include、#import与@class的使用与头文件循环引用问题
- iOS: ARC和非ARC下使用Block与循环引用问题
- 小胖说swift07-------- swift协议代理的使用以及解决循环引用问题