Мы видим, что указанный алгоритм можно реализовать наиболее удобно, имея какой-то способ обрывания блока "проверки-и-завершения"
и возврата к выводу формы заново. Как раз это и делает конструкция
if(÷òî_òî) do { ... } while(0);
Очевидно, что тело цикла do-while выполняется в любом случае только один раз (так как выражение в while всегда ложно). Тем не менее, такой "вырожденный"
цикл мы можем использовать для быстрого выхода из него посредством break.
Многие сразу возразят, что в таких случаях удачнее будет задействовать функции и оператор return. Однако в PHP как раз это довольно неудобно, поскольку для того, чтобы из функции добраться до глобальной переменной (коей является любой элемент формы), нужно проделать несколько дополнительных шагов. Это, конечно, недостаток PHP, и о нем мы поговорим чуть позже.
Цикл foreach
Данный тип цикла предназначен специально для перебора всех элементов массива и был добавлен только в четвертой версии языка PHP. Выглядит он следующим образом:
foreach(ìàññèâ as $key=>$value)
êîìàíäû;
Здесь команды
циклически выполняются для каждого элемента массива, при этом очередная пара ключ=>значение
оказывается в переменных $key и $value. Давайте рассмотрим пример (листинг 9.3), где покажем, как мы можем отобразить содержимое всех глобальных переменных при помощи foreach:
Листинг 9.3. Вывод всех глобальных переменных
<?
foreach($GLOBALS as $k=>$v)
echo "<b>$k</b> => <tt>$v</tt><br>\n";
?>
У цикла foreach имеется и другая форма записи, которую следует применять, когда нас не интересует значение ключа очередного элемента. Выглядит она так:
foreach(ìàññèâ as $value)
êîìàíäû;
В этом случае доступно лишь значение
очередного элемента массива, но не его ключ. Это может быть полезно, например, для работы с массивами-списками.