Краткая форма условного оператора
Условный оператор (?:)
представляет собой компактную форму инструкции условия if
.
Синтаксис:
expression ? true_value : false_value
Выполнение этой инструкции начинается с операнда expression
. Если значение выражения expression
истинно (true), то возвращается значение выражения true_value
, иначе возвращается false_value
.
В приведенном ниже примере выполняется выбор наименьшего из двух значений. Если значение a
меньше b
, то возвращается a
, иначе возвращается b
.
min = (а < b ? a : b);
Примеры использования условного оператора
Обычная форма записи условного оператора:
echo 'Число ';
if ($number < 0) echo 'отрицательное';
else echo 'положительное';
Компактная форма записи более удобна:
echo 'Число '.($number < 0 ? 'отрицательное' : 'положительное');
Вот еще один пример использования краткой формы условного оператора.
Согласно правил юзабилити сайта, стандартом де-факто является логотип, который на внутренних страницах становится ссылкой на главную страницу.
С помощью php-кода мы можем определить текущую страницу сайта. Для главной страницы переменная $page_type
принимает значение 1
. Если это внутренняя страница, то логотип станет ссылкой на главную страницу сайта.
<?php echo $page_type == 1 ? "":'<a href="www.domain.com">'; ?>
<img src="/i/logo.gif">
<?php echo $page_type == 1 ? "":'</a>'; ?>
А вы используете в своих проектах краткую форму написания условного оператора?
Называется трехместный условный оператор )
Что за трек в видео?
Музыка? К сожалению не знаю, но мне тоже нравится
За статью спасибо, то что искал и хорошо описано. Но зачем же надо размещать видео, которое само начинает играть. Среди ночи это ужас.
Я рад, что вы нашли то, что искали и при том в моем блоге.
Ну, простите, создатели этого видеролика (и я, разместивший в своем блоге) не учли, что вы это может нарушить вашу тишину. Приносим извинения, но, к сожалению, ничего исправить не могу. Если подскажете, что надо прописать, чтобы этот ролик не был на автоплее, то будь-те так любезны.
Ладно, по просьбам посетителей, убрал ролик с автовоспроизведением.
обычно такую запись называют — тернарный оператор
Спасибо, не знал. Посмотрел, что обзначает тернарный. Слово произощло от латинского ternārius — состоящий из трёх, тройной. Состоящий из трёх частей, компонентов.
При использовании с текстом «». без скобок не работает?
Виктор, не совсем понятен ваш вопрос.
Нештяк, как раз нужно было сократить писанину.
echo ‘Какой-то текст’.($us[‘sex’] == 0 ? ‘Девушка’ : ‘Парень’).’продолжение текста )’;
Хорошая информация, пригодится при разработке сайта
Какой-то текст продолжение текста
«echo ‘Число ‘.($number < 0 ? 'отрицательное' : 'положительное');"
Блин. Сначала сбился с толку. Думал, "отрицательное" это в смысле что условие не выполнилось, а после двоеточия выводится то что при true.
пссс
min = (а < b ? a : b);
может так
min = min(a, b);
min это НЕ функция, а переменная. После выполнения [min = (а < b ? a : b);], если [a] меньше [b], то [min = a]. Или, если [a] всё же больше, чем [b], то [min=b]. Таким образом имея числа в переменных [a] и [b], можно определить наименьшее и сразу же его записать. Аналог: [if(a < b) { min = a; } else { min = b; }]. (Такое ощущение как будто вы читали сквозь пальцы).
$a = $b ?: $c; // Если $b имеет значение $a = $b , иначе $a = $c;