Ternárny operátor v PHP
Nech máme nasledujúci kód, ktorý kontroluje,
či má používateľ už 18 rokov alebo nie:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Ako vidíte, konštrukcia if-else
je potrebná len na to, aby zapísala určitú
hodnotu do premennej $adult. Pre
takéto úlohy, keď v podmienke dochádza
len k zápisu jednej premennej, existuje
kratšie riešenie pomocou takzvaného
ternárneho operátora.
Jeho syntax je takáto:
<?php
variable = condition ? value1 : value2;
?>
Operátor funguje tak: ak je podmienka pravdivá,
vrátí sa value1, v opačnom
prípade - value2. Prepíšme
kód uvedený na začiatku lekcie pomocou
ternárneho operátora:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Mimochodom, je možné výsledok nezapísať do
premennej, ale okamžite ho vypísať pomocou var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Ternárny operátor by sa mal používať len v tých najjednoduchších prípadoch, pretože jeho používanie sťažuje pochopenie kódu.
Nech je daná premenná $num, ktorá
môže byť záporná alebo kladná.
Zapíšte do premennej $res číslo
1, ak je premenná $num väčšia
alebo rovná nule, a číslo -1, ak je premenná
$num menšia ako nula.