Урок 5: Циклы
В PHP имеется возможность управлять выполнением скриптов с помощью различных управляющих структур. В этом уроке мы рассмотри циклы. Циклы могут использоваться для повторения частей скриптов указанное число раз или до выполнения определённого условия.
Циклы "while"
Синтаксис цикла while таков:
while (условие) { Оператор }
Этот синтаксис можно перевести непосредственно на нормальный язык: while/пока условие соблюдается, делать что-то.
Рассмотрим простой пример:
<html> <head> <title>Циклы</title> </head> <body> <?php $x = 1; while ($x <= 50) { echo "<p>Этот текст повторяется 50 раз</p>"; $x = $x + 1; } ?> </body> </html>
В этом примере используется переменная/variable "$x". Как вы могли заметить, имена переменных в РНР всегда начинаются с символа "$". Поначалу это легко забыть, но это абсолютно необходимо запомнить, иначе скрипт не будет работать.
Помимо прочего, пример почти всегда говорит сам за себя. Сначала переменная $x получает значение 1. Затем цикл запрашивает у сервера повторение текста, пока $x не станет меньше или равна 50. При каждом проходе цикла значение переменной $x уменьшается на 1.
Циклы "for"
Другой способ создания цикла - с использованием for:
for (Инициализация; Условие; Шаг) { Оператор }
Оператор повторяется, пока 'Инициализация' + 'Шаг' удовлетворяют 'Условию'. Если это непонятно, взгляните на пример:
<html> <head> <title>Циклы</title> </head> <body> <?php for ($x=0; $x<=50; $x=$x+5) { echo '<p>variable $x теперь = ' . $x . '</p>'; } ?> </body> </html>
В вышеприведённом примере $x увеличивается на 5 при каждом проходе цикла. Цикл продолжается, пока $x меньше или равна 50. Обратите также внимание, как значение $x используется в качестве части этого выражения.
Вот другой пример:
<html> <head> <title>Циклы</title> </head> <body> <?php for ($ x=1; $x<=6; $x=$x+1) { echo "<h" . $x . ">Уровень заголовка " . $x . "</h" . $x . ">"; } ?> </body> </html>
Всё ли понятно? Сначала мы устанавливаем $x равной 1. Затем при каждом проходе цикла мы поднимаем уровень заголовка на $x (h1, h2, h3, etc.), пока $x не будет равна 6.
Вложенные циклы
В принципе нет никаких ограничений на использование циклов. Например, вы можете размещать циклы внутри других циклов и создавать таким образом много повторений.
Но будьте осторожны! PHP работает медленнее со сложными и большими скриптами. Например, в следующем примере с тремя циклами мы можем записать более 16 миллионов цветов!
Чтобы не замедлять работу страницы, мы должны значительно урезать это число, сделав шаг равным 30 и ограничив количество цветов числом 512.
<html> <head> <title>Циклы</title> </head> <body> <?php for ($intRed=0; $intRed<=255; $intRed=$intRed+30) { for ($intGreen=0; $intGreen<=255; $intGreen=$intGreen+30) { for ($intBlue=0; $intBlue<=255; $intBlue=$intBlue+30) { $StrColor = "rgb(" . $IntRed . "," . $IntGreen . "," . $IntBlue . ")"; echo "<span style='color:" . $StrColor . "'>" . $ StrColor . "</span>"; } } } ?> </body> </html>
В этом примере каждый из трёх основных цветов может (red, green и blue) может иметь значение от 0 до 255. Любое сочетание этих трёх цветов создаёт цвет в форме rgb(255,255,255). Этот код цвета используется как color в тэге <span>.
Циклы станут более применимыми, если вы научитесь ещё кое чему. Если вы в принципе поняли, что такое циклы, можете перейти к следующему уроку, где мы разберёмся с условием.