Тернарен оператор в PHP
Да предположим, че имаме следния код, който проверява
дали потребителят е навършил 18 години или не:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Както виждате, конструкцията if-else
е необходима само за да запише определена
стойност в променливата $adult. За
такива задачи, когато в условието се извършва
само записване на една променлива, съществува
по-кратко решение чрез така наречения
тернарен оператор.
Синтаксисът му е следния:
<?php
variable = condition ? value1 : value2;
?>
Операторът работи по следния начин: ако условието е вярно,
тогава се връща value1, в противен
случай - value2. Нека пренапишем
кода, даден в самото начало на урока, чрез
тернарен оператор:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Може, между другото, резултатът да не се записва в
променлива, а веднага да се изведе чрез var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Тернарният оператор трябва да се използва само в най-простите случаи, тъй като използването му затруднява разбирането на кода.
Дадена е променлива $num, която
може да бъде или отрицателна, или положителна.
Запишете в променливата $res числото
1, ако променливата $num е по-голяма
или равна на нула, и числото -1, ако променливата
$num е по-малка от нула.