Files
freeCodeCamp/guide/russian/php/loops/for-loop/index.md
2018-10-16 21:32:40 +05:30

76 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: For Loop
localeTitle: Для цикла
---
## Для цикла
Оператор PHP `for` состоит из трех выражений и оператора:
`for ((initialization); (condition); (final-expression)) statement`
### Описание
* инициализация
* Запуск до первого выполнения цикла.
* Это выражение обычно используется для создания счетчиков.
* Переменные, созданные здесь, привязаны к циклу. Как только цикл закончен, это исполнение, они уничтожены.
* состояние
* Выражение, которое проверяется перед выполнением каждой итерации.
* Если это опущено, это выражение оценивается как `true` .
* Окончательное выражение
* Выражение, которое запускается после каждой итерации.
* Обычно используется для увеличения счетчика.
* Но он может использоваться для запуска любого выражения.
* заявление
* Код должен повторяться в каждой итерации цикла.
Любое из этих трех выражений или утверждение может быть ограничено.
Выражения могут содержать несколько выражений, разделенных запятой.
В выражении (condition) будут вычислены все выражения, разделенные запятыми.
Результат получается из последнего.
Для циклов обычно используются для подсчета определенного количества итераций для повторения утверждения.
### Общие проблемы
#### Превышение границ массива
При многократном индексировании по массиву легко превзойти границы массива (например, попытайтесь ссылаться на 4-й элемент массива из 3 элементов).
```php
// 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]);
}
```
Это приведет к выводу:
```txt
int(1) int(2) int(3) NULL
```
Есть способы исправить этот код.
Задайте условие либо `$i < count($arr)` либо `$i <= count($arr) - 1` .
#### Проблемы с производительностью
Вышеприведенный код может стать медленным, так как размер массива выбирается на каждой итерации.
Чтобы исправить эту проблему, можно поместить размер массива в переменную.
```php
//create the $size variable with a second expression comma separated
for ($i = 0, $size = count($arr); $i < $size; ++$i) {
```
### Больше информации
* [PHP.net - Структуры управления](https://secure.php.net/manual/en/control-structures.for.php)