foreach之引用的使用
废话不说,上代码
$arrayName = array(
'0' => array(
'1' =>"houzi" ,
'2' =>"xiaogou"
) ,
'1' => array(
'2' =>"houzi" ,
'3' =>"xiaogou" )
);
var_dump($arrayName);
foreach ($arrayName as $key => &$value) {
$value[2]="xiugua";
}
var_dump($arrayName);exit;
结果:
array (size=2)0 => array (size=2)1 => string 'houzi' (length=5)2 => string 'xiaogou' (length=7)1 => array (size=2)2 => string 'houzi' (length=5)3 => string 'xiaogou' (length=7)
array (size=2)0 => array (size=2)1 => string 'houzi' (length=5)2 => string 'xiugua' (length=6)1 => &array (size=2)2 => string 'xiugua' (length=6)3 => string 'xiaogou' (length=7)
手册说明
可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php $arr = array(1, 2, 3, 4); foreach ($arr as &$value) { $value = $value * 2; } // $arr is now array(2, 4, 6, 8) unset($value); // 最后取消掉引用 ?>
$value 的引用仅在被遍历的数组可以被引用时才可用(例如是个变量)。以下代码则无法运行:
<?php foreach (array(1, 2, 3, 4) as &$value) { $value = $value * 2; } ?>
数组最后一个元素的 $value 引用在 foreach 循环之后仍会保留。建议使用 unset() 来将其销毁。
Note:
foreach 不支持用“@”来抑制错误信息的能力。
foreach之引用的使用相关推荐
- PHP中Foreach在引用时的陷阱
这个陷阱在PHP里存在很久了,先看代码: <?php $array = array(1, 2, 3); foreach ($array as &$v) {} foreach ($arra ...
- 谨慎使用PHP的引用
引用类型(Reference)在许多计算机语言中都被使用,而且是作为一个非常强大而实用的特性存在.它有类似指针(Pointer)的实现,却又有不同于指针的表现.例如C++的引用,可以让不同变量指向同一 ...
- php foreach 符号,关于php:php-foreach循环中变量之前的符号
本问题已经有最佳答案,请猛点这里访问. Possible Duplicate: Reference - What does this symbol mean in PHP? 我需要知道为什么在fore ...
- Java中foreach循环两种实现原理
一.foreach循环Iterator模式 首先我们看一个foreach循环的main方法 import java.util.Collections; import java.util.List; i ...
- 总结PHP 7新增加的特性
?? 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用.用法: $a = $_GET['a'] ?? 1;它相当于: <?PHP $a = isset($_GET['a'] ...
- php7 php5.6 array,[转]php5.6 升级到php7及变化
不向后兼容的变更 错误和异常处理相关的变更 在 PHP 7 中,很多致命错误以及可恢复的致命错误,都被转换为异常来处理了. 这些异常继承自 Error 类,此类实现了 Throwable 接口 (所有 ...
- 还看不懂同事的代码?Lambda 表达式、函数接口了解一下
本文经授权转载自微信公众号:未读代码 Java 8 早已经在2014 年 3月 18日发布,毫无疑问 Java 8 对 Java 来说绝对算得上是一次重大版本更新,它包含了十多项语言.库.工具.JVM ...
- Velocity User Guide 用户手册
转自:http://blog.csdn.net/gaojinshan/article/details/23945879 官方网址:http://velocity.apache.org/engine/d ...
- PHP特性整合 php7特性
PHP7 已经出来1年了,PHP7.1也即将和大家见面,这么多好的特性,好的方法,为什么不使用呢,也希望PHP越来越好. 在这里整理 PHP 5.1 ,PHP5.2,PHP5.3,PHP5.4,PH ...
最新文章
- 带你入门Python数据挖掘与机器学习(附代码、实例)
- 实习日记7.13-7.14
- jQuery中slice()方法用法实例
- 通过正则表达式验证日期
- UDP协议抓包分析 -- wireshark
- 聚类算法(五)--层次聚类(系统聚类)及超易懂实例分析
- 培训是一种乐趣(3)
- Krpano skin_settings解释
- 晟数学院 oracle,Oracle 控制文件存储解析
- c#+mysql图片存数据库_C#图片存入数据库及其读出显示
- cmd sc命令进行服务操作
- asp.net页生命周期图解---msdn
- Nagios 监控系统架构
- python安装模块方法_Python模块安装方法
- wps怎么关闭那个登录界面_关闭wps窗口快捷键是什么?
- CSDN:2020 年度 CSDN 博客之星评选——28 号【沉默王二】,感谢你投上的宝贵一票,感谢!
- 计算机没有有效的ip配置,win7电脑没有有效的ip配置怎么办
- JavaScript函数式编程入门-计算器应用
- GC策略笔记备忘(被namenode所迫)
- 如何快速验证你的创业想法是否可行?这里有7大策略
热门文章
- 获取字段_数据库中敏感字段的标记、标示
- 32位linux系统支持多大内存吗,linux32位操作系统支持大内存
- 判断语句_如何学好C语言判断语句?攻略if语句是第一步
- scikit-learn——快速入门 - daniel-D(转)
- LeetCode--434--字符串中的单词数
- github get 请求指定页面的代码
- C++雾中风景4:多态引出的困惑,对象的拷贝?
- DocBook vs Apache Forrest
- 动画分析步骤“三步曲”
- Atitit 从 RGB 到 HSL 或 HSV 的转换