current

(PHP 4, PHP 5, PHP 7, PHP 8)

current返回数组中的当前值

说明

current(array|object $array): mixed

每个数组中都有一个内部的指针指向它“当前的”单元,初始化时会指向该数组中的第一个值。

参数

array

要操作的数组。

返回值

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

警告

此函数可能返回布尔值 false,但也可能返回等同于 false 的非布尔值。请阅读 布尔类型章节以获取更多信息。应使用 === 运算符来测试此函数的返回值。

更新日志

版本 说明
8.1.0 弃用在 object 上调用此函数。 要么首先使用 get_mangled_object_vars()object 转换为 array,要么使用实现 Iterator 的类提供的方法,例如 ArrayIterator
7.4.0 SPL 类的实例现在被视为没有属性的空对象,而不是调用与此函数同名的 Iterator 方法。

示例

示例 #1 current() 函数使用示例

<?php
$transport
= array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';

$arr = array();
var_dump(current($arr)); // bool(false)

$arr = array(array());
var_dump(current($arr)); // array(0) { }
?>

注释

注意: 在一个空数组上使用 current() 函数,和在一个内部指针指向单元末端以外的数组上使用此函数,结果是相同的,同样都会返回 bool false。如果希望正确遍历一个包含 false 的数组,请参阅 foreach 控制结构。 如果仍然希望使用 current() 来判断数组单元真实的值,应该同时使用 key()current() 来检查当前元素是否为 null

参见

  • end() - 将数组的内部指针指向最后一个单元
  • key() - 从关联数组中取得键名
  • each() - 返回数组中当前的键/值对并将数组指针向前移动一步
  • prev() - 将数组的内部指针倒回一位
  • reset() - 将数组的内部指针指向第一个单元
  • next() - 将数组中的内部指针向前移动一位
  • foreach