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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
php相对当前文件include其它文件的方法
Mar 13 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
php微信开发之上传临时素材
Jun 24 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
windows 2008r2+php5.6.28环境搭建详细过程
Jun 18 PHP
不常用但很实用的PHP预定义变量分析
Jun 25 PHP
php时间戳转换代码详解
Aug 04 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中使用Oracle数据库(6)
2006/10/09 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
yii2中使用Active Record模式的方法
2016/01/09 PHP
php session 写入数据库
2016/02/13 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
PHP编程一定要改掉的5个不良习惯
2020/09/18 PHP
jquery CSS选择器笔记
2010/03/29 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
js操作label给label赋值及取label的值示例
2013/11/07 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Angularjs material 实现搜索框功能
2016/03/08 Javascript
angularjs利用directive实现移动端自定义软键盘的示例
2017/09/20 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
Vue.js使用axios动态获取response里的data数据操作
2020/09/08 Javascript
Python中文件I/O高效操作处理的技巧分享
2017/02/04 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python中使用print输出中文的方法
2018/07/16 Python
Window环境下Scrapy开发环境搭建
2018/11/18 Python
python处理multipart/form-data的请求方法
2018/12/26 Python
python制作英语翻译小工具代码实例
2019/09/09 Python
python numpy数组复制使用实例解析
2020/01/10 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
Sephora丝芙兰泰国官方网站:国际知名化妆品购物
2017/11/15 全球购物
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
2019史上最全Database工程师题库
2015/12/06 面试题
财务部总监岗位职责
2014/03/12 职场文书
化工操作工岗位职责
2014/04/29 职场文书
品酒会策划方案
2014/05/26 职场文书
诚信贷款承诺书
2014/05/30 职场文书
redis击穿 雪崩 穿透超详细解决方案梳理
2022/03/17 Redis