Одна из задач, с которой компьютеры всегад справлялись успешно — это автоматизация повторяющихся действий. Если нужно многократно выполнить одну и ту же последовательность действий, мы можем воспользоваться циклом, чтобы повторить определенные фрагменты программы.
Создадим, например, таблицу, отображающую стоимость доставки, которая добавляется к стоимости заказа клиента. В условиях, когда для доставки товара используется курьер, стоимость доставки зависит от расстояния и может быть вычислена с помощью простой формулы.
Создадим таблицу отображающую стоимость доставки товара.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Стоимость доставки товара в зависимости от расстояния</title>
</head>
<body class="text_blok">
<table width="20%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td bgcolor="#000066" align="center" style="color:#FFF">Расстояние</td>
<td bgcolor="#000066" align="center" style="color:#FFF">Стоимость</td>
</tr>
<tr>
<td align="right">50</td>
<td align="right">500</td>
</tr>
<tr>
<td align="right">100</td>
<td align="right">1000</td>
</tr>
<tr>
<td align="right">150</td>
<td align="right">1500</td>
</tr>
<tr>
<td align="right">200</td>
<td align="right">2000</td>
</tr>
<tr>
<td align="right">250</td>
<td align="right">2500</td>
</tr>
</table>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
Вместо того, чтобы поручать ввод HTML-кода человеку, лучше и удобнее поручить это дело компьютеру.
Операторы цикла указывают РНР о необходимости многократного выполнения того или иного оператора или блока операторов.
Простейшим видом цикла в РНР является цикл while. Подобно оператору if, в основе этого оператора лежит проверка условия. Различие между циклом while и оператором if состоит в том, что если условие принимает значение true, оператор if выполняет следующий блок только один раз. Цикл while выполняет блок операторов многократно, пока условие продолжает быть равным true.
В общем случае цикл while используется, когда неизвестно, для скольких итераций будет выполняться условие. Если же нужно выполнить фиксированное число итераций, стоит подумать об использовании цикла for.
Базовая структура цикла while имеет следующий вид:
while (условие) выражение;
Показанный ниже цикл while выводит на экран числа от 1 до 5.
$num = 1;
while ($num <= 5)
{
echo $num. "<br>";
$num++;
}
Условие проверяется в начале каждой итерации. Если оно принимает значение false, блок операторов выполняться не будет и цикл завершается. После этого выполняется оператор, следующий за циклом.
Цикл while можно использовать для выполнения чего-то более полезного, например, для отображения повторяющейся таблицы стоимости доставки.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Стоимость доставки товара в зависимости от расстояния</title>
</head>
<body>
<table width="20%" border="0" cellpadding="3" cellspacing="0">
<tr>
<td bgcolor="#000066" align="center" style="color:#FFF">Расстояние</td>
<td bgcolor="#000066" align="center" style="color:#FFF">Стоимость</td>
</tr>
<?php
$distance = 50;
while ($distance <= 250)
{
echo "<tr>\n <td align = 'right'>$distance</td>\n";
echo "<td align = 'right'>";
echo $distance*10;
echo "</td>\n</tr>\n";
$distance += 50;
}
?>
</table>
</body>
</html>
В окне веб-браузера это будет выглядеть ТАК.
Чтобы сгенерированный сценарием HTML-код стал удобочитемым, следует включить в него символы новой строки и пробелы. Браузеры на это не реагируют, но для людей, читающих распечатку, все это имеет значение.
Встречающаяся последовательность символов \n, если она заключена в двойные кавычки и находится внутри строки представляет собой символ новой строки.
Похожие материалы по теме:
Конструкции языка PHP. Инструкция if-else. Оператор switch. Цикл с постусловием do-while. Инструкции break и continue