Уроки PHP – Скорочений запис умови if else (тернарний оператор)

Ви, напевно, вже знаєте основні варіанти запису умови в PHP if, else, elseif. Використовуючи ці умовні оператори, можна перевірити масу можливих варіантів. Але іноді буває, що потрібно перевірити умову тільки серед 2-3 можливих варіантів. У цьому випадку велика спокуса максимально зменшити обсяг коду. Можливо, що для деяких програмістів скорочені записи умов додадуть більше плутанини, але іноді вони бувають корисні. У сьогоднішній статті ми коротко розглянемо синтаксис і приклади скороченого запису умови в PHP.

 

 

Синтаксис умовного оператора if else

Перевірка умови з використанням операторів if else виглядає так:

if ($condition) {   $result = 'Hello';  } else {   $result = 'World';  }  

 

 

Скорочений запис умови в PHP

У PHP для скороченого запису умови використовується тернарний оператор, який замінює сильно поширене використання структури if {} else {}. Замість того, щоб писати цю довгу структуру, ви можете використовувати тернарний оператор так:

$result = $condition ? 'Hello' : 'World';  

 

Якщо змінна $condition повертає true, тоді змінній $result буде присвоєно лівий операнд (по ліву сторону від двокрапки, тобто, Hello). Якщо умова хибна, тоді буде використовуватися правий операнд (по праву сторону від двокрапки, тобто, World).

 

Цікавий факт: назва тернарного оператора фактично означає «оператор, який діє на три операнда» (іншими словами – трійчастий оператор). Операнд – це термін, який використовується для позначення частин умовного виразу. Тернарний оператор – єдиний оператор в PHP, для якого потрібні три операнда: умова, істинний та хибний результат.

 

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



Тернарний вираз обчислюється зліва направо.

Тернарні оператори можуть бути вкладеними, але краще в цьому випадку використовувати дужки, або ж конструкцію if else.

 

 

Скорочений запис тернарного оператора

Починаючи з PHP 5.3 версії, можна опустити лівий операнд, що призведе до ще більш короткого запису:

$result = $one ?: 'Hello, world!';  

 

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

 

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

$result = $condition ? $condition : 'Hello, world!';  

 

 

Ось і все на сьогодні. Дякуємо за увагу!