Тернарный оператор в php
В языке РНР предусмотрена конструкция, которая работает почти так же, как и оператор if — тернарный оператор. В его синтаксисе, приведенном ниже, не используются ключевые слова, только символы «?» и «:»:
$variable = condition ? expression1 : expression2;
Если условие condition выполняется, то переменной $variable присваивается результат вычисления выражения expression1, иначе — выражения expression2. В результате можно писать очень компактный, и тем не менее вполне прозрачный код. Возьмем пример из предыдущей статьи:
$temperature = 35; if (($temperature >= 25) && ($temperature <= 30)) { echo ("Температура комфортна"); } else { echo ("Температура некомфортна"); }
Все шесть строк оператора if могут быть заменены одной строкой с использованием тернарного оператора (правда, строка получается достаточно длинная, и в книге она разбита на две):
$temperature = 35; echo ($temperature >= 25) && ($temperature <= 30) ? "Температура комфортна" : "Температура некомфортна";
В следующем примере вычисляется абсолютное значение (модуль) числа. Обратите внимание на использование знака «-» для изменение знака числа.
$value = -2 5; $abs_value = $value < 0 ? -$value : $value; echo $abs_value;
Наконец, в последнем примере раздела производится преобразование числа в диапазоне от 0 до 15 в шестнадцатеричную форму. Для получения символов от «А» до «F» используется функция chr, которая возвращает символ по его коду ASCII.
$value = 14; $output = $value < 10 ? "0x".$value : "Ox".chr ($value - 10 + 65); echo "$value = $output";
Результатом выполнения скрипта является строка: «14 = ОхЕ».
Автор: Стивен Хольцнер. Переводчик: С. Банников