牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP7 与 PHP5 foreach 函数的区别 详解

创建时间:2017-06-01 投稿人: 浏览次数:500

众所周知 PHP7 带来了 PHP 性能的高速提升 但其中一些方法的使用 已经和原来有一点不同了 比如我们今天介绍的 foreach 方法

———-重点内容

首先的测试版本为PHP 5.6.25
$arr = array("one", "two", "three", "four");
foreach ($arr as &$key) {
    $current = current($arr);
    var_dump($current);
    echo $key . "---->" . $current . "<br/>";



效果图如下

这里写图片描述


得到的结果也如下

这里写图片描述


下面我们来介绍一下 current 函数的用法

current

current — 返回数组中的当前单元

用法
mixed current ( array &$array )
每个数组中都有一个内部的指针指向它“当前的”单元,初始指向插入到数组中的第一个单元。

参数
array
这个数组。

返回值

current() 函数返回当前被内部指针指向的数组单元的值,并不移动指针。如果内部指针指向超出了单元列表的末端,current() 返回 FALSE。

如果想详细了解 可以看 http://php.net/manual/zh/function.current.php

由此我们可以看到 在PHP 7 之前的版本 比如 PHP 5.6.25

foreach 遍历数组时 数组指针会移动


再看一下PHP 7.0.10



测试代码如下

$arr = array("one", "two", "three", "four");

foreach ($arr as &$key) {
    $current = current($arr);
    var_dump($current);
    echo "<br/>";
    echo $key . "---->" . $current . "<br/>";
}

效果图如下
这里写图片描述

由此我们可以看到在PHP7 新版本中

foreach 遍历数组时 数组指针不会移动
即遍历数组后 不需要使用reset() 使数组指针指向数组的第一个单元
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。