(PHP 4, PHP 5, PHP 7, PHP 8)
current — Возвращает текущий элемент массива
Каждый массив содержит внутренний указатель на «текущий» элемент. Указатель инициализируется при вставке первого элемента.
array
Массив.
Функция current() только возвращает значение
элемента массива, на который указывает внутренний указатель.
Функция не сдвигает указатель ни в каком направлении. Функция current()
возвращает значение false
, если внутренний указатель указывает за пределы списка элементов
или массив пуст.
Функция
возвращает как логическое значение false
,
так и нелогическое значение, которое приводится к false
.
Прочитайте раздел
«Логический тип»,
чтобы получить дополнительную информацию.
Используйте оператор ===
для проверки значения, которое возвращает функция.
Версия | Описание |
---|---|
8.1.0 | Вызов функции на значении с типом object устарел. Объект (object) либо сначала преобразовывают в массив (array) функцией get_mangled_object_vars(), либо пользуются методами класса наподобие ArrayIterator, в котором реализовали интерфейс Iterator. |
7.4.0 | Экземпляры классов библиотеки SPL теперь вместо вызова метода интерфейса Iterator, название которого аналогично названию этой функции, обрабатываются как пустые объекты без свойств. |
Пример #1 Пример получения текущего элемента массива функцией current() с вызовом дружественных функций
<?php
$transport = array('foot', 'bike', 'car', 'plane');
echo $mode = current($transport), PHP_EOL; // $mode = 'foot';
echo $mode = next($transport), PHP_EOL; // $mode = 'bike';
echo $mode = current($transport), PHP_EOL; // $mode = 'bike';
echo $mode = prev($transport), PHP_EOL; // $mode = 'foot';
echo $mode = end($transport), PHP_EOL; // $mode = 'plane';
echo $mode = current($transport), PHP_EOL; // $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
.
foreach