Что такое текущий элемент массива

Статус
В этой теме нельзя размещать новые ответы.

BANEN

Новичок
Объясните пожалуйста, что такое текущий элемент массива?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Тот, с которым ты работаешь в данную итерацию цикла.
 

BANEN

Новичок
т.е. вне циклов этого понятия как такового не существует?
 

Baton

Новичок
т.е. вне циклов этого понятия как такового не существует?
Вне цикла текущим будет первый элемент массива. Значение текущего элемента можно получить функцией current();

PHP:
$array = array( 1,2,3 );
echo current( $array );//1
А также можно получить ключ текущего элемента массива функцией key:

PHP:
$array = array( 'first'=>1,'second'=>2 );
echo key( $array );//first
 

Baton

Новичок
т.е. вне циклов этого понятия как такового не существует?
Я подумал что мог Вас запутать, поэтом поясню.

Текущим элементом массива называется тот на который стоит указатель. По умолчанию указатель стоит на первый элемент массива. Поэтому можно сделать вывод, что вне цикла текущим элементом будет первый элемент массива. Но в принципе Вы правы относительно того, что термин "текущий элемент" используется внутри цикла!
 

С.

Продвинутый новичок
BANEN, в PHP у каждого массива существует свой внутренний указатель на элемент. Его можно перемещать и кое-как использовать (например пробегать по массиву). Но в сложных алгоритмах лучше на него не закладываться, особенно если массив передается в другие блоки, которые фиг знает, где могут оставить этот указатель после своей работы.

Но в локальных контекстах это иногда очень помогает. Например:

reset($array); $first= key($array); // индекс первого элемента (если он не ноль)
end($array); $last= key($array); // индекс последнего элемента
 

Фанат

oncle terrible
Команда форума
понятие текущего элемента повсеместно использовалось до появления в языке оператора foreach
когда для перебора использовался оператор each.
обозначало элемент, на котором в данный момент стоит указатель
Используется в контексте нескольких функций для работы с массивами.
По возможности я бы избегал общения с этим понятием.

К циклам эта позиция никакого отношения не имеет.

Внутри же цикла такое понятие имеет мало смысла. Ну то есть да: по умолчанию у нас текущий элемент - текущий. Но профита нам с этого знания - никакого. При переборе через foreach у нас и элемента-то нету - есть только его ключ и значение. При переборе же индексов массива у нас опять же - нет никакого "текущего" элемента, а есть индекс, по которому мы можем обратиться к элементу массива.
 

Baton

Новичок
PHP:
$array = array( 1,2,3 );
each( $array );
echo current( $array );//??????
О, Вы не смогли пройти мимо моего комментария и здесь :) Все хотите меня `урыть по полной`. Прям не знаю чем я так Вам `понравился`.

Обратите внимание, какой контекст я имел в виду: По умолчанию указатель стоит на первый элемент массива. Это значит до всяких сдвигов указателя.

Дышите ровно, и отстаньте наконец :)
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху