#2.13 php Условный тренарный оператор
Primary tabs
В языке РНР предусмотрена конструкция, которая работает почти так же, как и оператор 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».
- Log in to post comments
- 919 reads