亲,本人为专职SOHO族兼网站/平面设计师,
提供网站业务如下:网站设计网站修改服务网站教学asp/php程序修改
提供平面业务如下: LOGO设计名片设计传单设计宣传册设计PPT设计改图业务
我期待与您合作 !!
本人承接任何网站/平面方面的业务!价格是一般网络公司的1/3,质量保证!
    php -> 列表    

PHP foreach循环

作者: admin / 热度: 1647 / 发布时间: 07 23,2020
PHP 中提供了 4 种循环控制语句,分别是 while、do while、for 和 foreach。本节只讲解 foreach 循环,其它 3 种循环请猛击以下链接学习:
  • PHP while 和 do while 循环
  • PHP for 循环

PHP foreach 循环结构是遍历数组时常用的方法,foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量或者未初始化的变量将发出错误信息。

foreach 有以下两种语法格式:

//格式1
foreach (array_expression as $value){
    statement
}

//格式2
foreach (array_expression as $key => $value){
    statement
}

第一种格式遍历 array_expression 数组时,每次循环将数组的值赋给 $value;第二种遍历不仅将数组值赋给 $value,还将键名赋给 $key。

举例演示两种格式的不同:
			
  1. <?php
  2. $array = [0, 1, 2];
  3. foreach ($array as $val){
  4. echo "值是:" . $val ;
  5. echo "<br/>";
  6. }
  7. foreach ($array as $key => $value) {
  8. echo "键名是:" . $key . "值是:" . $value;
  9. echo "<br/>";
  10. }
  11. ?>
执行以上代码打印的结果是:
			
  1. 值是:0
  2. 值是:1
  3. 值是:2
  4. 键名是:0值是:0
  5. 键名是:1值是:1
  6. 键名是:2值是:2

foreach 在 PHP5 和 PHP7 中的区别

在 PHP 5 版本中,当 foreach 开始循环执行时,每次数组内部指针都会自动向后移动一个单元,但是在 PHP 7 中却不是这样。如下代码在 PHP 5 和 PHP 7 中的执行结果会有所不同。
			
  1. <?php
  2. $array = [0, 1, 2];
  3. foreach ($array as $val){
  4. var_dump(current($array));
  5. }
  6. ?>
在 PHP 5 中的输出结果为:

int(0) int(1) int(2)

但在 PHP 7 中的输出结果却为:

int(0) int(0) int(0)


在 PHP 7 中,按照值进行循环时,foreach 是对数组的复制操作,在循环过程中对数组的修改不会影响循环行为,但在 PHP 5 中却会有影响。

			
			
  1. <?php
  2. $array = [0, 1, 2];
  3. //$ref =& $array; // Necessary to trigger the old behavior
  4. foreach ($array as $val) {
  5. var_dump($val);
  6. unset($array[1]);
  7. }
  8. ?>
在 PHP 7 中的输出结果为:

int(0) int(1) int(2)

但在 PHP 5 中的输出结果却为:

int(0) int(2)


在 PHP 7 中按照引用循环的时候对数组的修改会影响循环,在 PHP 5 中 则不会改变。示例如下:

			
			
  1. <?php
  2. $array = [0];
  3. foreach ($array as &$val) {
  4. var_dump($val);
  5. $array[1] = 1;
  6. $array[2] = 2;
  7. }
  8. ?>
在 PHP 7 中的运行结果是:

int(0) int(1) int(2)

但在 PHP 5 中的运行结果却是:

int(0)

源码出售


FORM表单模板下载 / 100款HTML表单样式下载 / ¥20

PHP图片处理 / ¥20

PHP+MySQL导出数据生成csv/xml/doc/html/xls/pdf / ¥20
关于我们 平面服务列表
网站服务列表 联系我们
关于我们
网站作品
付款方式
实用导航
常见问题
Blog文章
平面修改服务
LOGO设计
名片设计
传单设计
宣传册设计
PPT设计
网站修改服务
网站答疑
网站教学
网站设计
HTML编辑器
海啸推广
在线联系我们
微信号:abc229041248
QQ 号:229041248
E-mail:229041248@qq.com
电话:13268299646
Copyright ©2008-2018 行人网络 Corporation, All Rights Reserved