站长网 PHP教程 分析PHP foreach循环

分析PHP foreach循环

PHP foreach 循环结构是遍历数组时常用的方法,foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量或者未初始化的变量将发出错误信息。 foreach 有以下两种语法格式: //格式1 foreach (array_expression as $value){ statement } //格式2

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

foreach 有以下两种语法格式:

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

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

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

举例演示两种格式的不同:

<?php

$array = [0, 1, 2];

foreach ($array as $val){

echo "值是:" . $val ;

echo "<br/>";

}

foreach ($array as $key => $value) {

echo "键名是:" . $key . "值是:" . $value;

echo "<br/>";

}

?>

执行以上代码打印的结果是:

值是:0

值是:1

值是:2

键名是:0值是:0

键名是:1值是:1

键名是:2值是:2

foreach 在 PHP5 和 PHP7 中的区别
在 PHP 5 版本中,当 foreach 开始循环执行时,每次数组内部指针都会自动向后移动一个单元,但是在 PHP 7 中却不是这样。如下代码在 PHP 5 和 PHP 7 中的执行结果会有所不同。

<?php

$array = [0, 1, 2];

foreach ($array as $val){

var_dump(current($array));

}

?>

在 PHP 5 中的输出结果为:

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

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

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

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

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/jc/php/2021/0525/6243.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部