Краткая запись if в PHP

Краткая форма условного оператора

Условный оператор (?:) представляет собой компактную форму инструкции условия if.

Синтаксис:

expression
Изображение: Sharlaev Maksim © Shutterstock, Inc.
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>'; ?>

А вы используете в своих проектах краткую форму написания условного оператора?


Понравилась статья? Поделиться с друзьями:
Комментарии: 18
  1. Дмитрий

    Называется трехместный условный оператор )

  2. golavskiydm

    Что за трек в видео?

    1. FORTRESS-DESIGN (автор)

      Музыка? К сожалению не знаю, но мне тоже нравится :)

  3. Magik

    За статью спасибо, то что искал и хорошо описано. Но зачем же надо размещать видео, которое само начинает играть. Среди ночи это ужас.

    1. FORTRESS-DESIGN (автор)

      Я рад, что вы нашли то, что искали и при том в моем блоге.

      Ну, простите, создатели этого видеролика (и я, разместивший в своем блоге) не учли, что вы это может нарушить вашу тишину. Приносим извинения, но, к сожалению, ничего исправить не могу. Если подскажете, что надо прописать, чтобы этот ролик не был на автоплее, то будь-те так любезны.

    2. FORTRESS-DESIGN (автор)

      Ладно, по просьбам посетителей, убрал ролик с автовоспроизведением.

  4. alex

    обычно такую запись называют — тернарный оператор

    1. FORTRESS-DESIGN (автор)

      Спасибо, не знал. Посмотрел, что обзначает тернарный. Слово произощло от латинского ternārius — состоящий из трёх, тройной. Состоящий из трёх частей, компонентов.

  5. Viktor

    При использовании с текстом «». без скобок не работает?

    1. FORTRESS-DESIGN (автор)

      Виктор, не совсем понятен ваш вопрос.

  6. Саня

    Нештяк, как раз нужно было сократить писанину.

    echo ‘Какой-то текст’.($us[‘sex’] == 0 ? ‘Девушка’ : ‘Парень’).’продолжение текста )’;

  7. Александр

    Хорошая информация, пригодится при разработке сайта

  8. Алексей

    Какой-то текст продолжение текста

  9. Kit

    «echo ‘Число ‘.($number < 0 ? 'отрицательное' : 'положительное');"
    Блин. Сначала сбился с толку. Думал, "отрицательное" это в смысле что условие не выполнилось, а после двоеточия выводится то что при true.

  10. Игорь Граб

    пссс

    min = (а < b ? a : b);

    может так

    min = min(a, b);

    1. Кирито Асумо

      min это НЕ функция, а переменная. После выполнения [min = (а < b ? a : b);], если [a] меньше [b], то [min = a]. Или, если [a] всё же больше, чем [b], то [min=b]. Таким образом имея числа в переменных [a] и [b], можно определить наименьшее и сразу же его записать. Аналог: [if(a < b) { min = a; } else { min = b; }]. (Такое ощущение как будто вы читали сквозь пальцы).

  11. Вячеслав Большагин

    $a = $b ?: $c; // Если $b имеет значение $a = $b , иначе $a = $c;

    1. Мишин Артём

      :idea: :idea:

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: