Вот, например, как будет выглядеть наш старый знакомый сценарий, который приветствует пользователя по имени, с использованием альтернативного синтаксиса if-else (листинг 9.1):
Листинг 9.1. Альтернативный синтаксис if-else
<?if(@$go):?>
Ïðèâåò, <?=$name?>!
<?else:?>
<form action=<?=$REQUEST_URI?> method=post>
Âàøå èìÿ: <input type=text name=name><br>
<input type=submit name=go value="Îòîñëàòü!">
<?endif?>
Согласитесь, что даже человек, совершенно не знакомый с PHP, но зато хорошо разбирающийся в HTML, легко сможет додуматься, что к чему в этом сценарии.
Цикл с предусловием while
Эта конструкция также унаследована непосредственно от Си. Ее предназначение — цикличное выполнение команд в теле цикла, включающее предварительную проверку, нужно ли это делать (истинно ли логическое выражение в заголовке). Если не нужно (выражение ложно), то конструкция заканчивает свою работу, иначе выполняет очередную итерацию и начинает все сначала. Выглядит цикл так:
while(ëîãè÷åñêîå_âûðàæåíèå)
èíñòðóêöèÿ;
где, как обычно, логическое_выражение — логическое выражение, а
инструкция — простая или составная инструкция тела цикла. (Очевидно, что внутри последнего должны производиться какие-то манипуляции, которые будут иногда изменять значение нашего выражения, иначе оператор зациклится. Это может быть, например, простое увеличение некоего счетчика, участвующего в выражении, на единицу.) Если выражение с самого начала ложно, то цикл не выполнится ни разу. Например:
$i=1; $p=1;
while($i<32) {
echo $p," ";
$p=$p*2; // ìîæíî áûëî áû íàïèñàòü $p*=2