Ternarni operator v PHP
Recimo, da imamo naslednjo kodo, ki preverja
ali je uporabnik star 18 let ali ne:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Kot lahko vidite, je konstrukcija if-else
potrebna samo zato, da zapišemo določeno
vrednost v spremenljivko $adult. Za
takšne naloge, ko se v pogoju zgodi
samo zapis ene spremenljivke, obstaja
bolj kratka rešitev s pomočjo tako imenovanega
ternarnega operatorja.
Njegova sintaksa je naslednja:
<?php
variable = condition ? value1 : value2;
?>
Operator deluje tako: če je pogoj resničen,
se vrne value1, v nasprotnem
primeru - value2. Prepišimo
kodo iz začetka lekcije s pomočjo
ternarnega operatorja:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Mimogrede, rezultata ni treba zapisati v
spremenljivko, ampak ga je mogoče takoj izpisati prek var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Ternarni operator je priporočljivo uporabljati samo v zelo preprostih primerih, saj njegova uporaba otežuje razumevanje kode.
Naj bo dana spremenljivka $num, ki
je lahko negativna ali pozitivna.
Zapišite v spremenljivko $res število
1, če je spremenljivka $num večja
ali enaka nič, in število -1, če je spremenljivka
$num manjša od nič.