Вопрос по поведению current() в PHP

181
23 декабря 2021, 13:10

Имеем простой код:

$array = array('a', 'b', 'c', 'd');
foreach($array as $k => $v) {
    if($v == 'c') {
        return current($array);
    }
}
//Вывод: d

Почему выводится значение из следующей итерации, а не из текущей? Ведь по логике мы не переходили к следующей итерации, а завершаем скрипт! В документации php нет примеров этой функции с использованием циклов.

Answer 1

В документации к foreach четко написано

перебирает массив, задаваемый с помощью array_expression. На каждой итерации значение текущего элемента присваивается переменной $value и внутренний указатель массива увеличивается на единицу (таким образом, на следующей итерации цикла работа будет происходить со следующим элементом).

READ ALSO
Работа с несколькими моделями

Работа с несколькими моделями

Я новичок в YII2Помогите пожалуйста решить проблему с редактированием данных пользователя взятых из нескольких моделей

229
Помощь с ботом ВК (php)

Помощь с ботом ВК (php)

Использую CallBackAPI

101
Некорректная работа библиотеки RedBeanPHP на OpenServer

Некорректная работа библиотеки RedBeanPHP на OpenServer

Раньше всё работало нормальноНо последнее время при выполнении функций:

269