Ternære operator i PHP
Lad os sige, at vi har følgende kode, der kontrollerer
om brugeren allerede er 18 år gammel eller ej:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Som du kan se, bruges if-else-konstruktionen
kun til at skrive en bestemt
værdi i variablen $adult. Til
sådanne opgaver, hvor der i betingelsen kun foregår
tilskrivning af én variabel, findes der en
kortere løsning via den såkaldte
ternære operator.
Dens syntaks er som følger:
<?php
variable = condition ? value1 : value2;
?>
Operatoren fungerer sådan: hvis betingelsen er sand,
returneres value1, i modsat
tilfælde - value2. Lad os omskrive
koden fra begyndelsen af lektionen ved hjælp af
den ternære operator:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Man kan forresten undlade at skrive resultatet i en
variabel og i stedet straks udskrive det via var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Den ternære operator bør kun bruges i de mest simple tilfælde, da dens brug forvanser forståelsen af koden.
Lad der være givet en variabel $num, som
enten kan være negativ eller positiv.
Skriv i variablen $res tallet
1, hvis variablen $num er større
end eller lig med nul, og tallet -1, hvis variablen
$num er mindre end nul.