b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

PHP foreach循环

电脑杂谈  发布时间:2020-05-09 02:06:05  来源:网络整理

parallel.foreach task_foreach_foreach

PHP中有四个循环控制语句,即while,do while,for和foreach. 本节仅说明了foreach循环. 对于其他三个循环,请单击以下链接以学习:

PHP foreach循环结构是遍历数组时的常用方法. Foreach只能应用于数组和对象. 如果您尝试将其应用于其他数据类型的变量或未初始化的变量,则会发出错误消息.

foreach具有以下两种语法格式:

//格式1

foreach(将array_expression作为$值){

声明

parallel.foreach task_foreach_foreach

}

//格式2

foreach(array_expression为$键=> $值){

声明

}

以第一种格式遍历array_expression数组时,每次将数组的值分配给$ value;第二次遍历不仅将数组值分配给$ value,而且将键名分配给$ key.

演示两种格式之间的区别:

<?php
$array = [0, 1, 2];
foreach ($array as $val){
    echo "值是:" . $val ;
    echo "<br/>";
     //var_dump(current($array));
}
foreach ($array as $key => $value) {
    echo "键名是:" . $key . "值是:" . $value;
    echo "<br/>";
}
?>

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

值是:0
值是:1
值是:2
键名是:0值是:0
键名是:1值是:1
键名是:2值是:2

PHP5和PHP7中的foreach之间的区别在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)整数(0)整数(0)

在PHP 7中,按值循环时,foreach是数组的复制操作. 在循环期间对数组的修改不会影响循环行为foreach,但是会在PHP 5中受到影响.

<?php
$array = [0, 1, 2];
//$ref =& $array; // Necessary to trigger the old behavior
foreach ($array as $val) {
    var_dump($val);
    unset($array[1]);
}
?>  

PHP 7的输出是:

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

但是PHP 5的输出是:

int(0)int(2)

在PHP 7中foreach,对数组的修改将在引用周期时影响周期,但在PHP 5中,它将不会更改. 示例如下:

<?php
$array = [0];
foreach ($array as &$val) {
    var_dump($val);
    $array[1] = 1;
    $array[2] = 2;
}
?>

在PHP 7中运行的结果是:

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

但是PHP 5中的结果是:

int(0)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-203597-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 鲁莹莹
        鲁莹莹

        等着你们的舞台回归秀

        • 陈双瑛
          陈双瑛

          医生不行贿会好好给你看病吗

      • 任元格
        任元格

        有你在我们大家都放心呀

      热点图片
      拼命载入中...