Ternārais operators PHP
Pieņemsim, ka mums ir šāds kods, kas pārbauda
vai lietotjam jau ir sasniedzis 18 gadu vecumu vai nē:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Kā redzat, konstrukcija if-else
vajadzīga tikai tam, lai ierakstītu noteiktu
vērtību mainīgajā $adult. Šādiem
uzdevumiem, kad mums nosacījumā notiek
tikai viena mainīgā ierakstīšana, pastāv
īsāks risinājums, izmantojot tā saukto
ternāro operatoru.
Tā sintakse ir šāda:
<?php
variable = condition ? value1 : value2;
?>
Operators darbojas šādi: ja nosacījums ir patiess,
tad tiek atgriezta value1, pretējā
gadījumā - value2. Pārrakstīsim
nodarbības sākumā doto kodu, izmantojot
ternāro operatoru:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Starp citu, var neierakstīt rezultātu
mainīgajā, bet uzreiz izvadīt caur var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Ternāro operatoru vajadzētu izmantot tikai vienkāršākajos gadījumos, jo tā izmantošana apgrūtina koda sapratni.
Pieņemsim, ka ir dots mainīgais $num, kas
var būt vai nu negatīvs, vai pozitīvs.
Ierakstiet mainīgajā $res skaitli
1, ja mainīgais $num ir lielāks
vai vienāds ar nulli, un skaitli -1, ja mainīgais
$num ir mazāks par nulli.