Оператор ? Проверка числа на четность

Опубликовал: Wednesday, March 14, 2024 в категории HTML | Пока нет комментариев

Оператор ? имеет следующий формат:

<Переменная> = (<Логическое выражение>) ? <Выражение если Истина> :

<Выражение если Ложь>;

Перепишем нашу программу (листинг 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) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *