|
стить следующий сце-
нарий (листинг 8.8).
Листинг 8.8. testarr.php: работают ли многомерные массивы?
// оператор @ нужен, для того чтобы подавить предупреждение, если
// переменная еще не была инициализирована.
if(@$go) {
if(@$A[10][20]=="Yes") {
echo "Многомерные массивы работают!";
} else {
echo "Многомерные массивы НЕ работают!";
}
} else {
echo "Testing, wait...";
echo "";
}
?>
Вот вкратце, как он работает. При первом запуске переменная $go не
инициализиро-
вана, поэтому управление получает блок, выводящий тэг . Он заставляет
браузер перезагрузить страницу, но уже с параметрами в командной строке
go=1&A[1][2]=Yes. Сценарий запускается снова, но уже на этот раз переменная $go
равна 1 (потому что именно такое значение было передано в командной строке).
Если
многомерные массивы поддержаны, то, очевидно, что элемент массива $A[1][2],
которому мы присвоили значение Yes в командной строке, будет существовать и
рав-
няться Yes. В этом случае мы получим сообщение, что массивами пользоваться мож-
но, а иначе — что они не работают.
Глава 9
Конструкции
языка
Ну вот мы и подобрались к языковым конструкциям. Некоторые из них нами уже
применялись, и не раз — например, инструкция if. В этой главе приводится полное
описание всех языковых конструкций PHP. Их не так много, и это достоинство PHP.
Как показывает практика, чем более лаконичен синтаксис языка, тем проще его ис-
пользовать в повседневной практике. PHP — отличный пример этому.
О терминологии
Иногда я применяю слово "конструкция", а иногда — "инструкция". В данной
книге эти два термина совершенно эквивалентны. Наоборот, термины "опе-
ратор" и "операция" несут разную смысловую нагрузку: любая операция есть
оператор, но не наоборот. Например, echo — оператор, но не операция, а ++
— операция.
Инструкция if-else
Начнем с самой простой инструкции — условного оператора. Его формат таков:
if(логическое_выражение)
инструкция_1;
else
инструкция_2;
Действие его следующее: если логическое_выражение истинно, то выполняется
инструкция_1, а иначе — инструкция_2. Как и в любом другом языке, конструк-
ция else может опускаться, в этом случае при получении должного значения просто
ничего не делается.
Пример:
if($a>=1&&$b<=10) echo "Все OK";
else echo "Неверное значение в переменной!";
Если инструкция_1 или инструкция_2 должны состоять из нескольких команд, то
они, как всегда, заключаются в фигурные скобки. Например:
Часть III. Основы языка PHP 154
if($a>$b) { print "a больше b"; c=$b; }
elseif($a==$b) { print "a равно b"; $c=$a; }
else { print "a меньше b"; $c=$a; }
Это не опечатка: elseif слитно, вместо else if. Так тоже можно писать, хотя это,
по-моему, и не удобочитаемо.
Конструкция if-else имеет еще один альтернативный синтаксис:
if(логическое_выражение):
команды;
elseif(другое_логическое_выражение):
другие_команды;
else:
иначе_команды;
endif
Обратите внимание на расположение двоеточия (:)! Если его пропустить, будет
сге-
нерировано сообщение об ошибке. И еще: как обычно, блоки elseif и else можно
опускать.
Использование альтернативного
синтаксиса
В предыдущих главах нами уже неоднократно рассматривался пример вставки
HTML-кода в тело сценария. Для этого достаточно было просто закрыть скобку ?>,
написать этот код, а затем снова открыть ее при помощи , и продолжать
програм-
му.
Возможно, вы обратили внимание на то, как это некрасиво выглядит. Тем не менее,
если приложить немного усилий для оформления, все окажется не так уж и плохо.
Особенно, если использовать альтернативный синтаксис
if-else и других конструкций языка.
Чаще всего, однако, нужно бывает делать не вставки HTML внутрь программы, а
вставки кода внутрь HTML. Это гор
|
|