Operatorul ternar în PHP
Să presupunem că avem următorul cod care verifică
dacă un utilizator are deja 18 ani sau nu:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
După cum vedeți, construcția if-else
este necesară doar pentru a scrie o anumită
valoare în variabila $adult. Pentru
astfel de sarcini, când în condiție are loc
doar scrierea unei variabile, există
o soluție mai scurtă prin așa-numitul
operator ternar.
Sintaxa sa este următoarea:
<?php
variable = condition ? value1 : value2;
?>
Operatorul funcționează astfel: dacă condiția este adevărată,
atunci este returnat value1, în caz
contrar - value2. Să rescriem
codul dat la începutul lecției folosind
operatorul ternar:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Apropo, puteți să nu scrieți rezultatul în
variabilă, ci să îl afișați imediat prin var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Operatorul ternar trebuie folosit doar în cele mai simple cazuri, deoarece utilizarea lui dificultă înțelegerea codului.
Să presupunem că este dată variabila $num, care
poate fi fie negativă, fie pozitivă.
Scrieți în variabila $res numărul
1, dacă variabila $num este mai mare
sau egală cu zero, și numărul -1, dacă variabila
$num este mai mică decât zero.