Циклы

Как и в любом другом языке программирования, в PHP возможность повторить фрагмент кода X раз очень важна. Для этого мы используем PHP операторы и циклы. В этой статье будет рассказано обо всех них.

Цикл while

Цикл while является самым простым из всех. Он повторяет блок кода до тех пор, пока выражение внутри него расценивается как истина. Пример может выглядеть следующим образом:

<?php
$i = 0;
while($i < 5)
{
    echo $i."<br>";
    $i++;
}
?>

Попробуйте запустить этот кусок кода. Цикл посчитает до 4, так как принимаемые переменной значения будут не больше 5. Каждый раз, когда цикл выполняет итерацию, мы добавляем 1 к значению $ i, а также выводим текущее значение. Независимо от того, какое условие вы хотите разместить в скобках оператора цикла PHP, оно должно оценивать Булево значение, т.е. истина (true) или ложь (false).

Цикл do-while

Этот цикл работает почти точно также как цикл while, но с одним важным отличием. В while значение логического выражения проверяется в начале цикла, в do-while — в конце итерации. Это означает, что с циклом do-while, вам гарантируется по крайней мере одна итерация, а в обычном while код может никогда не выполниться, если условие никогда не будет истинно.

Вот пример, показывающий как раз такое поведение:

<?php
$i = 0;
do
{
    echo $i."<br>";
    $i++;
} while($i < 0);
?>
?>

С обычным циклом while пользователю ничего бы не вывелось, потому что $i равно 0, и, следовательно, условие не выполняется. С оператором цикла PHP do-while мы гарантированно получаем одну итерацию. Впоследствии PHP «понимает», что условное выражение не является истинным (true) и выходит из цикла.

Цикл for

Один из наиболее распространенных циклов в PHP. Ниже приведен пример использования цикла for:

<?php
for($i = 0; $i < 5; $i++)
{
    echo $i."<br />";
}
?>

Он произведет точно такой же результат, что и предыдущий цикл while, но с меньшим количеством строк кода. Переменная-счетчик инициализирована, проверена и увеличена в той же строке: сначала мы объявляем ее и присваиваем ей значение, далее пишем выражение выполняющее проверку, и затем увеличиваем (или уменьшаем). Оператор цикла PHP for подходит для всех ситуаций, когда вы хотите, отслеживать количество итераций.

Цикл foreach

В PHP цикл foreach используется для перебора массива. Фактически, он работает только с массивами, и PHP сгенерирует ошибку при попытке использовать его с переменной, которая не содержит массив. Цикл foreach доступен в двух видах — вот пример первого из них:

<?php
$animals = array("Dog", "Cat", "Snake", "Tiger");

foreach($animals as $animal)
    echo $animal . "<br />";
?>

foreach разработан для того, чтобы работать только с массивами, которые в свою очередь делают весь процесс проще. В каждой итерации переменной $animal присвоено значение из массива, что дает нам легкий доступ к нему. Этот небольшой фрагмент кода выведет список элементов (в данном случае животных) массива.

В этой версии оператора цикла PHP foreach мы только получаем доступ к значению массива. Однако каждый элемент в массиве состоит из ключа и значения. В нашем примере мы позволяем PHP автоматически присвоить ключи, не явно устанавливая их. Если вам необходимо получить доступ к ключу текущего элемента в итерации, используйте вспомогательную конструкцию foreach:

<?php
$animals = array(1 => "Dog", "Cat", "Snake",    "Tiger");

foreach($animals as $key => $value)
    echo "Animal number " . $key . " is a " . $value . "<br />";
?>

Вот так просто.

Перевод статьи “Loops” был подготовлен дружной командой проекта Сайтостроение от А до Я.