Оператор ? Проверка числа на четность
Оператор ? имеет следующий формат:
<Переменная> = (<Логическое выражение>) ? <Выражение если Истина> :
<Выражение если Ложь>;
Перепишем нашу программу (листинг 5.32) и используем оператор ? вместо
if…else (листинг 5.34).
Листинг 5.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
5.19.4. Оператор выбора switch.
Использование оператора switch вместо if…else
Оператор выбора switch имеет следующий формат:
switch (<Переменная или выражение>) {
case <Значение 1>:
<Выражение 1>;
break;
case <Значение 2>:
<Выражение 2>;
break;
…
default:
<Выражение>;
}
Перепишем нашу программу определения операционной системы и исполь-
зуем оператор switch вместо if…else (листинг 5.35).
Листинг 5.35. Использование оператора switch
<b>Какой операционной системой вы пользуетесь?</b><br><br>
<form action="<?php echo $_SERVER[‘SCRIPT_NAME’]; ?>">
<select name="os">
<option value="0" selected>Не выбрано</option>
<option value="1">Windows 98</option>
<option value="2">Windows ME</option>
<option value="3">Windows XP</option>
<option value="4">Другая</option>
</select>
<input type="submit" value="Выбрал">
</form>
<?php
if (isset($_GET[‘os’])) { switch($_GET[‘os’]) { case ‘1’:
echo ‘Вы выбрали - Windows 98’; break;
case ‘2’:
echo ‘Вы выбрали - Windows ME’; break;
case ‘3’:
echo ‘Вы выбрали - Windows XP’; break;
case ‘4’:
echo ‘Вы выбрали - Другая’; break;
case ‘0’:
echo ‘Вы не выбрали операционную систему’; break;
default:
echo ‘Мы не смогли определить вашу операционную систему’;
}
}
?>
Вместо логического выражения оператор switch принимает переменную или выражение. В зависимости от значения переменной (или выражения) выпол- няется один из блоков case, в котором указано это значение. Если ни одно из значений не описано в блоках case, то выполняется блок default. Оператор break позволяет досрочно выйти из оператора выбора switch. Зачем это нужно? Если не указать оператор break в конце блока case, то будет выпол- няться следующий блок case вне зависимости от указанного значения. Если убрать все операторы break из нашего примера, то в результате (при выборе Windows 98) в окне Web-браузера отобразится следующая надпись:
Вы выбрали - Windows 98Вы выбрали - Windows MEВы выбрали - Windows XPВы выбрали - ДругаяВы не выбрали операционную системуМы не смогли определить вашу операционную систему
Иными словами, оператор break следует обязательно указывать в конце бло-
ка case.
Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)
Похожие посты:
- Изменение высоты строки (межстрочного интервала) в тексте (0)
- Изменение стиля маркеров списка или удаление маркеров (0)
- Изменение вида элементов формы с помощью CSS (0)
- Создание двухколоночной формы с помощью CSS вместо таблиц (0)
- Тестирование сайта в различных броузерах при наличии только одной ОС (0)
- Возможность поддержки нескольких версий Internet Explorer в Windows (0)
- Справочник по обобщенным представлениям Django (0)