PHP中的函数-- foreach()的用法详解


Posted in PHP onJune 24, 2013

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。
自PHP 5 起,还可能遍历对象。

注意:
当 foreach 开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在 foreach 循环之前调用 reset()。

注意:
除非数组是被引用,foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在 foreach 循环中或循环后都不要依赖数组指针的值。
自 PHP 5 起,可以很容易地通过在 $value 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
    $value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>

此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
<?php
foreach (array(1, 2, 3, 4) as &$value) {
    $value = $value * 2;
}
?>

PHP 相关文章推荐
Classes and Objects in PHP5-面向对象编程 [1]
Oct 09 PHP
PHP聊天室技术
Oct 09 PHP
解析php session_set_save_handler 函数的用法(mysql)
Jun 29 PHP
php计算当前程序执行时间示例
Apr 24 PHP
PHP中使用imagick实现把PDF转成图片
Jan 26 PHP
ecshop 2.72如何修改后台访问地址
Mar 03 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
php获取访问者浏览页面的浏览器类型
Jan 23 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
TP5框架简单登录功能实现方法示例
Oct 31 PHP
解析php框架codeigniter中如何使用框架的session
Jun 24 #PHP
PHP错误提示的关闭方法详解
Jun 23 #PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
Jun 23 #PHP
关于zend studio 出现乱码问题的总结
Jun 23 #PHP
php 备份数据库代码(生成word,excel,json,xml,sql)
Jun 23 #PHP
PHP获取MSN好友列表类的实现代码
Jun 23 #PHP
使用php统计字符串中中英文字符的个数
Jun 23 #PHP
You might like
PHP中的float类型使用说明
2010/07/27 PHP
php网站地图生成类示例
2014/01/13 PHP
iOS+PHP注册登录系统 PHP部分(上)
2016/12/26 PHP
用php+ajax新建流程(请假、进货、出货等)
2017/06/11 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
Laravel 修改验证异常的响应格式实例代码详解
2020/05/25 PHP
用dom+xhtml+css制作的一个相册效果代码打包下载
2008/01/24 Javascript
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
js 实现打印网页中定义的部分内容的代码
2010/04/01 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
iframe异步加载实现点击左边菜单加载右边内容实例讲解
2013/03/04 Javascript
关于eval 与new Function 到底该选哪个?
2013/04/17 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
jQuery获取上传文件的名称的正则表达式
2015/05/21 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
React如何避免重渲染
2018/04/10 Javascript
详解Angular路由之路由守卫
2018/05/10 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
python从入门到精通(DAY 3)
2015/12/20 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python判断三段线能否构成三角形的代码
2020/04/12 Python
Python生成器next方法和send方法区别详解
2020/05/30 Python
Python 抓取数据存储到Redis中的操作
2020/07/16 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
python3中布局背景颜色代码分析
2020/12/01 Python
实习评语
2013/12/16 职场文书
集团公司总经理岗位职责
2013/12/20 职场文书
《望洞庭》教学反思
2014/02/16 职场文书
会计求职自荐信
2014/06/20 职场文书
护士求职自荐信范文
2015/03/04 职场文书
债务纠纷起诉书
2015/05/20 职场文书
考教师资格证不要错过的4个最佳时机
2019/07/17 职场文书
多表查询、事务、DCL
2021/04/05 MySQL