#2.13 php Условный тренарный оператор

В языке РНР предусмотрена конструкция, которая работает почти так же, как и оператор if — тернарный оператор. В его синтаксисе, приведенном ниже, не используются ключевые слова, только символы ? и : : $variable = condition ? expressionl : expression2 . Если условие condition выполняется, то переменной $variable присваивается результат вычисления выражения expression1, иначе — выражения expression2. В результате можно писать очень компактный, и тем не менее вполне прозрачный код. Возьмем пример из предыдущего раздела:

$temperature = 35;
if (($temperature >= 25) && ($temperature <= 30))
{
   echo ("Температура комфортна");
}
else
{
   echo ("Температура некомфортна");
}

Все восемь строк оператора if могут быть заменены одной строкой с использованием тернарного оператора (правда, строка получается достаточно длинная, и в книге она разбита на две):

$temperature = 35;
echo ($temperature >= 25) && ($temperature <= 30) ? "Температура
комфортна" : "Температура некомфортна";

В следующем примере вычисляется абсолютное значение (модуль) числа.

$value = -25;
$abs_value = $value < 0 ? -$value : $value;
echo $abs_value;

Наконец, в последнем примере раздела производится преобразование числа в диапазоне от $0$ до $15$ в шестнадцатеричную форму. Для получения символов от «А» до «F» используется функция chr, которая возвращает символ по его коду ASCII (см. гл. 3).

$value = 14;
$output = $value < 10 ? "0x" . $value : "0x". chr($value - 10 + 65);
echo "$value = $output";

Результатом выполнения скрипта является строка «$14$ = $0$xE».