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

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

BANEN

Новичок
Объясните пожалуйста, что такое текущий элемент массива?
 
Тот, с которым ты работаешь в данную итерацию цикла.
 
т.е. вне циклов этого понятия как такового не существует?
 
т.е. вне циклов этого понятия как такового не существует?

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

PHP:
$array = array( 1,2,3 );
echo current( $array );//1

А также можно получить ключ текущего элемента массива функцией key:

PHP:
$array = array( 'first'=>1,'second'=>2 );
echo key( $array );//first
 
т.е. вне циклов этого понятия как такового не существует?

Я подумал что мог Вас запутать, поэтом поясню.

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

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

reset($array); $first= key($array); // индекс первого элемента (если он не ноль)
end($array); $last= key($array); // индекс последнего элемента
 
понятие текущего элемента повсеместно использовалось до появления в языке оператора foreach
когда для перебора использовался оператор each.
обозначало элемент, на котором в данный момент стоит указатель
Используется в контексте нескольких функций для работы с массивами.
По возможности я бы избегал общения с этим понятием.

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

Внутри же цикла такое понятие имеет мало смысла. Ну то есть да: по умолчанию у нас текущий элемент - текущий. Но профита нам с этого знания - никакого. При переборе через foreach у нас и элемента-то нету - есть только его ключ и значение. При переборе же индексов массива у нас опять же - нет никакого "текущего" элемента, а есть индекс, по которому мы можем обратиться к элементу массива.
 
PHP:
$array = array( 1,2,3 );
each( $array );
echo current( $array );//??????

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

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

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