Циклы while и do/while в PHP
http://belarusweb.net
Основы создания сайтов

Циклы while и do/while

Цикл while в PHP

Представителем простейшего вида циклов в PHP является цикл while, который служит для повторного выполнения кода, расположенного в его теле, до тех пор, пока условие цикла остается истинным, т.е. имеет значение true (см. пример 4.7).

<?php
$a=6; //Присвоили переменной стартовое значение 

while($a<=10){ 		
	echo $a=++$a; //Код выполняется пока $a<=10
}		
	/* Выведет в ходе цикла 7891011 */
?>

Пример 4.7. Цикл while

Как видно из примера, условие цикла записывается в круглых скобках после ключевого слова while, затем в фигурных скобках записывается блок инструкций для исполнения. Работает цикл while следующим образом: каждый раз перед выполнением новой итерации, т.е. очередного выполнения блока инструкций в теле цикла, происходит проверка его условия и, если результат будет иметь значение true, код в теле цикла выполняется; далее интерпретатор возвращается в начало цикла и снова проверяет его условие, повторяя все процедуры заново до тех пор, пока условие цикла не вернет значение false; в этом случае интерпретатор прерывает выполнение цикла и, пропустив блок инструкций в его теле, передает управление следующему за циклом оператору.

Цикл do/while в PHP

Цикл do/while очень похож на цикл while, но в нем истинность выражения проверяется не в начале итерации, а в конце (см. пример 4.8).

<?php
$a=6; //Присвоили переменной стартовое значение 

do{ 		
	echo $a=++$a; 	//Код выполняется пока $a<=10
}while($a<=10);	//Условие цикла проверяется в конце после тела 	

/* Выведет в ходе цикла 7891011, как и в случае
 цикла while в предыдущем примере */
 
	/* После закрывающей круглой скобки условия не забываем ставить 
	точку с запятой!!! Напомним, что опускать ее можно только, если 
	инструкция является последней в блоке php-кода */
?>

Пример 4.8. Цикл do/while

Как видно из примера, в цикле do/while сперва идет ключевое слово do, затем следует тело цикла и только в самом конце записывается ключевое слово while с условием цикла, содержащегося в круглых скобках после него. Как следствие, первая итерация цикла do/while гарантированно выполнится хотя бы раз, в то время как обычный цикл while может быть прерван сразу же после первой проверки условия, если его значение изначально окажется ложным (см. пример 4.9).

<?php
$a=11;		     //Присвоили переменной стартовое значение 

while($a<=10){ 		
	echo $a=++$a; //Код не выполнится вообще ни разу, т.к. изначально $a>10
}	

do{ 		
	echo $a=++$a; //Веведет 12
}while($a<=10);  //После первой же проверки условия цикл будет прерван
?>

Пример 4.9. Отличие цикла while от цикла do/while

После закрывающей круглой скобки условия цикла do/while нужно обязательно ставить точку с запятой. Опускать ее разрешается только в случае, когда инструкция является последней в блоке php-кода.