#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
- 256 reads