Статьи

Использование троичного оператора PHP

Вы, наверное, уже знакомы с оператором if Он очень похож на своих аналогов во многих других языках программирования и представляет собой одно из самых фундаментальных понятий в программировании. Оператор if Это, вероятно, то, что вы привыкли:

 <?php
if ($coolFactor >= 10) {
    $message = "You are one cool dude!";
}
else {
    $message = "Sorry, you aren't that cool!";
}

Но есть способ развить эту концепцию и немного увеличить свой $coolFactor Позвольте мне представить вам троичный оператор, который служит сокращенной записью для операторов if

Представляем троичного оператора

Состоящий из трех частей, троичный оператор использует три выражения, разделенные знаком вопроса и двоеточием. Вопросительный знак следует за тестовым выражением и может рассматриваться как вопрос «Ну, это правда?». Затем двоеточие разделяет два возможных значения, первое из которых будет выбрано, если тестовое выражение истинно, и второе, если тестовое выражение ложно. Заметим:

 <?php
$message = ($coolFactor >= 10) ? "You're one cool dude!" : "Sorry, you aren't that cool!";

Одно из моих любимых применений для троичного оператора — проверить, установлено ли значение и, если нет, установить переменную в значение по умолчанию.

 <?php
$favoriteColor = isset($_GET["color"]) ? $_GET["color"] : "pink";

Если параметр цвета был передан в скрипт из URL-адреса, его значение присваивается переменной $favoriteColor Если это не так, вместо него назначается значение по умолчанию «розовый».

Начиная с PHP 5.3 можно сокращать троичные выражения еще больше, исключая среднее выражение. Если тестовое выражение оценивает true в логическом контексте, возвращается его значение. В противном случае вместо этого возвращается альтернатива.

 <?php
$favoriteColor = $_GET["color"] ?: "pink";

Но с большой прохладой приходит большая ответственность! Правильное использование троичного оператора может привести к более чистому коду; злоупотребление троичным оператором может привести к беспорядку. Никогда не жертвуйте читабельностью или ремонтопригодностью вашего кода, чтобы добавить немного бликов.

Не злоупотребляйте этим!

Прежде чем использовать троичный оператор, вы должны рассмотреть сложность ситуации под рукой. Старайтесь не вкладывать и не складывать свои операции, даже если вам удобно их использовать, поскольку это может привести к очень запутанному коду и неинтуитивным результатам. Все еще лучше использовать операторы if Прежде всего, будьте добры к следующему парню и постарайтесь, чтобы ваш код был чистым и простым для понимания.

Также не случайно разбить троичные выражения на несколько строк. Как и в большинстве случаев в программировании, существует множество вариантов свободного использования пробелов для улучшения читабельности вашего кода.

 <?php
$message = $isWinner
    ? "Congratulations! You just won a whole bunch of money and prizes!"
    : "Sorry, you didn't get any money or prizes this time.";

Как всегда, удобочитаемость должна быть ключевой.

Резюме

Тернарный оператор на первый взгляд может показаться немного странным, но для его освоения требуется очень мало усилий, и его очень легко объяснить другим, кто может поддерживать ваш код в будущем. Немного потренировавшись, вы сможете придать своему PHP-коду дополнительную дозу удивительного и избавиться от путаницы в своей жизни.

Изображение с помощью Arman Zender / Shutterstock