Приднестровская поддержка XOOPS
Оператор ? имеет следующий формат:
<Переменная> = (<Логическое выражение>) ? <Выражение если Истина> :
<Выражение если Ложь>;
Перепишем нашу программу (листинг 32) и используем оператор ? вместо if…else (листинг 34).
Листинг 34. Использование оператора ?
<b>Проверка числа на четность</b><br><br>
Введите число<br>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>">
<input type="text" name="var">
<input type="submit" value="OK">
</form><br>
<?php
if (isset($_GET['var'])) {
$var = $_GET['var'];
if (preg_match('/^[0-9]+$/s', $var)) {
// Преобразуем тип string (строка) в integer (число)
$var = intval($var);
echo ($var%2 == 0) ? $var . ' - Четное число'
: $var . ' - Нечетное число';
}
else echo 'Необходимо ввести число';
}
?>
Рассмотрим еще один пример. Предположим необходимо вывести сообщение при возникновении определенного условия. Если попробовать вывести так
$var = 5;
($var == 5) ? echo 'Равно' : echo 'Не равно'; // Ошибка
то возникнет ошибка. Обойти эту ошибку можно способом, который мы рассмотрели в листинге 5.34, или вместо оператора echo использовать оператор print:
$var = 5;
($var == 5) ? print 'Равно' : print 'Не равно';
Начиная с PHP 5.3 средний параметр можно не указывать:
$var = $_GET['var'] ? : 'Значение по умолчанию';
echo $var;
Если переменная $_GET['var'] не существует, то переменная $var будет иметь значение "Значение по умолчанию", а если определена, то значение переменной $var будет равно значению переменной $_GET['var']. Такая короткая запись эквивалентна следующему коду:
$var = $_GET['var'] ? $_GET['var'] : 'Значение по умолчанию';
echo $var;
При использовании короткой записи следует иметь в виду то, что если переменная не существует, будет выведено предупреждающее сообщение:
Notice: Undefined index: var
Отправитель | Нити |
---|
2 пользователь(ей) активно (1 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 2 далее... |