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 相关文章推荐
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
php共享内存段示例分享
Jan 20 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
php使用post数组的键值创建同名变量并赋值的方法
Apr 03 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
YII Framework框架教程之缓存用法详解
Mar 14 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
Netbeans 8.2将支持PHP7 更精彩
Jun 13 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
PHP使用file_get_contents发送http请求功能简单示例
Apr 29 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 03 PHP
laravel实现上传图片并在页面显示的例子
Oct 14 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读取IMAP邮件
2006/10/09 PHP
整合了前面的PHP数据库连接类~~做成一个分页类!
2006/11/25 PHP
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
javascript prototype原型操作笔记
2009/12/07 Javascript
javascript天然的迭代器
2010/10/29 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
ANGULARJS中用NG-BIND指令实现单向绑定的例子
2014/12/08 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
JavaScript获取css行间样式,内连样式和外链样式的简单方法
2016/07/18 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
微信小程序实现点击文字页面跳转功能【附源码下载】
2017/12/12 Javascript
完美解决axios在ie下的兼容性问题
2018/03/05 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
Python正规则表达式学习指南
2016/08/02 Python
python rsa 加密解密
2017/03/20 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
python 如何调用 dubbo 接口
2020/09/24 Python
计算机实训报告范文
2014/11/05 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
一年级语文上册复习计划
2015/01/17 职场文书
西双版纳导游词
2015/02/03 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
面试通知短信
2015/04/20 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
Go语言grpc和protobuf
2022/04/13 Golang