freeCodeCamp/guide/russian/php/loops/for-loop/index.md

3.5 KiB
Raw Blame History

title localeTitle
For Loop Для цикла

Для цикла

Оператор PHP for состоит из трех выражений и оператора:

for ((initialization); (condition); (final-expression)) statement

Описание

  • инициализация
    • Запуск до первого выполнения цикла.
    • Это выражение обычно используется для создания счетчиков.
    • Переменные, созданные здесь, привязаны к циклу. Как только цикл закончен, это исполнение, они уничтожены.
  • состояние
    • Выражение, которое проверяется перед выполнением каждой итерации.
    • Если это опущено, это выражение оценивается как true .
  • Окончательное выражение
    • Выражение, которое запускается после каждой итерации.
    • Обычно используется для увеличения счетчика.
    • Но он может использоваться для запуска любого выражения.
  • заявление
    • Код должен повторяться в каждой итерации цикла.

Любое из этих трех выражений или утверждение может быть ограничено.

Выражения могут содержать несколько выражений, разделенных запятой.

В выражении (condition) будут вычислены все выражения, разделенные запятыми.

Результат получается из последнего.

Для циклов обычно используются для подсчета определенного количества итераций для повторения утверждения.

Общие проблемы

Превышение границ массива

При многократном индексировании по массиву легко превзойти границы массива (например, попытайтесь ссылаться на 4-й элемент массива из 3 элементов).

// This will cause an error. 
 // The bounds of the array will be exceeded. 
 $arr = array(1,2,3); 
 
 for ($i = 0; $i <= count($arr); $i++) { 
    var_dump($arr[$i]); 
 } 

Это приведет к выводу:

int(1) int(2) int(3) NULL 

Есть способы исправить этот код.

Задайте условие либо $i < count($arr) либо $i <= count($arr) - 1 .

Проблемы с производительностью

Вышеприведенный код может стать медленным, так как размер массива выбирается на каждой итерации.

Чтобы исправить эту проблему, можно поместить размер массива в переменную.

//create the $size variable with a second expression comma separated 
 for ($i = 0, $size = count($arr); $i < $size; ++$i) { 

Больше информации