РНР предоставляет также возможность альтернативного синтаксиса условного оператора – без фигурных скобок, а с применением оператора endif. В следующем примере первая таблица помещается на страницу, если только $_GET ['HDD'] равно "Maxtor", а вторая - если "Seagate". Наличие оператора endif в этом случае обязательно, так как фигурная скобка, обозначающая конец блока if, отсутствует:
<?
if($_GET ['HDD'] == "Maxtor"):
? >
<table>
<caption> Maxtor </caption>
</table>
<?
elseif($_GET ['HDD'] == "Seagate"):
? >
<table><caption> Seagate </caption></table>
<?
endif;
? >
Результат выполнения скрипта:
рис.2 Форма запроса
Рис.3 Результат выполнения скрипта
Значение переменной $_GET ['HDD'] передается формой test. html скрипту test. php. Код формы test. html:
<form action = "http: // localhost/PHP/test. php; " method=get>
HDD: <input type="text" name="HDD"/><br> <input type="submit"/>
</form>
РНР также, как и С++, Java предоставляет возможность заменять блоки if…else условной операцией (в отличие от унарных и бинарных операций условная операция используется с тремя операндами). В изображении условной операции присутствуют два размещенных не подряд символа ‘? ’ и ‘: ’ и три операнда выражения: выражение_1? выражение_2: выражение_3
Первым вычисляется значение выражения_1. Если оно истинно (т.е. не равно нулю), то вычисляется значение выражения_2, которое и становится результатом. Если при вычислении значения выражения_1 получится ноль (ложь), то в качестве результата берется выражение_3. Классическим примером условной операции является выражение x < 0? –x: x;
Это выражение возвращает абсолютное значение переменой x.Т. е., к примеру, код
<?
if($_GET ['HDD'] == "Maxtor") {
$_GET ['CDROM'] = "Teac";
}
else{ $_GET ['CDROM'] = "Nec";
}
? >
можно, используя условную операцию, заменить таким:
<? $_GET ['CDROM'] = ($HDD == "Maxtor") ? "Teac": "Nec";? >