Ternaarioperaattori PHP:ssä
Oletetaan, että meillä on seuraava koodi, joka tarkistaa
onko käyttäjällä jo 18 vuotta vai ei:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Kuten näette, if-else -rakenne
tarvitaan vain sen vuoksi, että kirjoitetaan tietty
arvo muuttujaan $adult. Tällaisia
tehtäviä varten, joissa ehdossa tapahtuu
vain yhden muuttujan kirjoittaminen, on olemassa
lyhyempi ratkaisu ns.
ternaarioperaattorin kautta.
Sen syntaksi on seuraava:
<?php
variable = condition ? value1 : value2;
?>
Operaattori toimii seuraavasti: jos ehto on tosi,
palautetaan value1, muussa
tapauksessa - value2. Kirjoitetaan
oppitunnin alussa esitetty koodi uudelleen
ternaarioperaattorin avulla:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Voit muuten olla kirjoittamatta tulosta
muuttujaan, vaan tulostaa sen välittömästi var_dump:in kautta:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Ternaarioperaattoria tulisi käyttää vain yksinkertaisimmissa tapauksissa, koska sen käyttö vaikeuttaa koodin ymmärtämistä.
Oletetaan, että on annettu muuttuja $num, joka
voi olla joko negatiivinen tai positiivinen.
Kirjoita muuttujaan $res luku
1, jos muuttuja $num on suurempi
tai yhtä suuri kuin nolla, ja luku -1, jos muuttuja
$num on pienempi kuin nolla.