(PHP 4, PHP 5, PHP 7, PHP 8)
current — Возвращает текущий элемент массива
У каждого массива имеется внутренний указатель на его "текущий" элемент, который инициализируется первым элементом, добавленным в массив.
array
Массив.
Функция current() просто возвращает значение
элемента массива, на который указывает его внутренний указатель.
Она не перемещает указатель куда бы то ни было. Если
внутренний указатель находится за пределами списка элементов или
массив пуст, current() возвращает false
.
Эта функция может возвращать как логическое значение false
, так и значение не типа boolean, которое приводится к false
. За более подробной информацией обратитесь к разделу Булев тип. Используйте оператор === для проверки значения, возвращаемого этой функцией.
Версия | Описание |
---|---|
8.1.0 | Вызов функции в объекте (object) объявлен устаревшим. Либо сначала преобразуйте объект (object) в массив (array) с помощью функции get_mangled_object_vars(), либо используйте методы, предоставляемые классом, реализующим интерфейс 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
.