Тернарный оператор в php

В языке РНР предусмотрена конструкция, которая работает почти так же, как и оператор if — тернарный оператор. В его синтаксисе, приведенном ниже, не используются ключевые слова, только символы «?» и «:»:

code: #php
$variable = condition ? expression1  : expression2;

Если условие condition выполняется, то переменной $variable присваи­вается результат вычисления выражения expression1, иначе — выражения expression2. В результате можно писать очень компактный, и тем не менее вполне прозрачный код. Возьмем пример из предыдущей статьи:

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

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

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

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

code: #php
$value = -2 5;
$abs_value = $value < 0 ? -$value :  $value;
echo $abs_value;

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

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

Результатом выполнения скрипта является строка: «14 = ОхЕ».

Книга: PHP в примерах. Купить книгу
Автор: Стивен Хольцнер. Переводчик: С. Банников
Поделиться:

Похожие статьи: