Уроки PHP – Сокращенная запись условия if else (тернарный оператор)

Конструкция if и её компоненты elseif и else составляют основополагающую часть языков программирования, к которым относится PHP. С её помощью можно сравнивать значения переменных и выполнять различные действия в зависимости от того или иного результата. Структура записи логических операций здесь идентична представленном в языке C формате, однако и при отсутствии опыта можно быстро разобраться в этом вопросе.

Сокращенная запись условия в PHP

В PHP для сокращенной записи условия используется тернарный оператор, который заменяет сильно распространенное использование структуры if {} else {}. Вместо того, чтобы писать эту длинную структуру, вы можете использовать тернарный оператор так:

$result = $condition ? ‘Hello’ : ‘World’;

Если переменная $condition возвращает true, тогда переменной $result будет присвоен левый операнд (по левую сторону от двоеточия, т.е., Hello). Если условие ложное, тогда будет использоваться правый операнд (по правую сторону от двоеточия, т.е., World).

Интересный факт: название тернарного оператора фактически означает «оператор, который действует на три операнда» (другими словами – троичный оператор). Операнд – это термин, который используется для обозначения частей условного выражения. Тернарный оператор – единственный оператор в PHP, для которого требуются три операнда: условие, истинный и ложный результат.

Тернарный оператор будет использовать свой левый операнд, когда условие оценивается как истинное. Это может быть строка, целое число, логическое значение и т.д. Правый операнд будет использоваться для так называемых «ложных значений». Примерами могут быть 0 или ‘0’, пустой массив или строка, null, неопределенная или неназначенная переменная и, конечно, само значение false. Все эти значения заставят тернарный оператор использовать свой правый операнд.

Читайте также:  Error no such partition или как восстановить загрузчик Кали Линукс?

Тернарное выражение вычисляется слева направо.

Тернарные операторы могут быть вложенными, но лучше в этом случае использовать скобки, либо же конструкцию if else.

Сокращенная запись тернарного оператора

Начиная с PHP 5.3 версии, можно опустить левый операнд, что приведет к еще более короткой записи:

$result = $one ?: ‘Hello, world!’;

В данном случае значение $result будет значением $one, если только $one не возвращает false, и в этом случае будет использована строка Hello, world!.

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

$result = $condition ? $condition : ‘Hello, world!’;

Вот и все на сегодня. Спасибо за внимание!

Теги: php

  • 3307
  • 41
  • Опубликовано 03/05/2019
  • PHP, Уроки программирования
  • прокомментируйте статью
  • расскажите друзьям

Как происходит выполнение условного оператора?

В первую очередь осуществляется проверка истинности условия. Если условие истинно (равно true), выполняется оператор1, если же условие ложно (равно false) – оператор2. И в том и в другом случае выполняется только один из операторов оператор1 и оператор2, другой же – просто игнорируется.

Как видите, часть else условного оператора может отсутствовать. Тогда, если условие истинно, то выполняется оператор1, в противном же случае весь оператор if пропускается.

Применение условного оператора проиллюстрируем на следующем примере.

Пусть значение y зависит от значения x. График зависимости приведен на рисунки ниже. Требуется по заданному x определить значение y.

Для того, чтобы по заданному x определить значение y, нужно выяснить, в пределах какого из трех интервалов лежит значение x, а затем уже подставлять его в нужное выражение.

Читайте также:  iOS 14: всё про новую версию ОС для iPhone

Оператор условий if else в R

В языке программирования R оператор условий if else состоит из трех элементов:

  1. индикатор структуры: if, else или else if (в случае, когда условий больше одного)
  2. условие структуры, заключенного в круглые скобки (где находится условие для выполнения действия).
  3. тело структуры, заключенного в фигурные скобки (где находится код самого действия)

Пример 1: покупай больше, плати меньше — if без else

Давайте создадим простейший вариант структуры if else, когда есть только одно условие при соблюдении которого, требуется выполнить дополнительное действие в сценарии. Допустим, в магазине акция: при покупке на сумму от 100$, предоставляется 12.5% скидка. Сколько мы в итоге потратим если наша покупка (x) была на сумму 120$?

x = 120 if(x >= 100){ x = x — x*12.5/100 print(x) } [1] 105

Итак, в скобках находится условие, что общая стоимость покупок будет меняться только в случае, если x >= 100. Внутри фигурных скобок отображен код, иллюстрирующий механизм изменения финальной стоимости. Как Вы видите, индикатор else был не указан в конструкции. Мы его опустили, так как в случае, если x < 100, то никаких действий производиться не будет.

Следует также отметить, что для того, чтобы изменить показатель x, и проверить финальную цену, нам придется запускать весь код конструкции заново. Это непрактично, именно поэтому конструкцию if else чаще всего используют внутри функции. Давайте создадим и запустим функцию с оператором условий if else внутри.

shop <- function(x){   if(x >= 100){    x = x — x*12.5/100    print(x)   } } shop(120) [1] 105 shop(50) [1] 50

Пример 2: прогрессивная система скидок — индикатор else if

Добавим второе условие: если сумма покупок больше или равна 1000$, то магазин предоставит 25% скидку. Для этого условия мы будем использовать индикатор else if. В этом случае, нужно также изменить параметры первого условия, где x должно быть больше или равно 100, но меньше 1000. Если же ни первое, ни второе условие не соблюдается, то выведем на экран сообщение «No discounts» после финальной цены при помощи индикатора else.

Читайте также:  Настройка web сервера apache в CentOS 8

shop <- function(x){   if(x >= 100 && x < 1000){     x = x — x*12.5/100     print(x)   }   else if(x >= 1000){     x = x — x*20/100     print(x)   }   else{     print(c(x, «No discounts»))   } } shop(20) [1] 20 «No discounts» shop(200) [1] 175 shop(2000) [1] 1600

Также внутрь оператора условий if else можно вставить другой оператор if else, либо циклы while или for. Подобное свойство вложения управляющих структур позволяет реализовывать сложные многоуровневые сценарии (алгоритмы) на практике, создавая функции с несколькими аргументами, и множеством условий и циклов внутри.

Логические операторы PHP

Для записи нескольких выражений в условие используются логические операторы, переводящиеся следующим образом:

  • and (&&) – «и»;
  • or (||) – «или»;
  • ! – отрицание;
  • xor – исключающее или.

В скобках к пунктам указаны их более приоритетные варианты,используемые в сложных конструкциях. То есть, вместо if($a== 4 and $b==1) можно указать if($a == 4 && $b== 1). Несмотря на нецелесообразность установки приоритетов в подобных ситуациях, данный код также приведёт к идентичному результату.

Последний пункт может вызвать некоторые затруднения, объясняемые отсутствием слова «xor» в английском языке. Этот оператор можно описать как «и, но не оба одновременно». Не стоит путать элементы списка с условными операторами – они являются предметом материала в целом.