Ternära operatorn i PHP
Låt oss säga att vi har följande kod som kontrollerar
om användaren redan är 18 år gammal eller inte:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Som du ser behövs konstruktionen if-else
bara för att skriva ett visst
värde till variabeln $adult. För
sådana uppgifter, när vårt villkor endast resulterar i
att en variabel sätts, finns det ett
kortare lösning genom den så kallade
ternära operatorn.
Dess syntax är som följer:
<?php
variable = condition ? value1 : value2;
?>
Operatorn fungerar så här: om villkoret är sant,
returneras value1, annars
value2. Låt oss skriva om
koden från början av lektionen med hjälp av
den ternära operatorn:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Man kan förresten inte skriva resultatet till en
variabel, utan omedelbart skriva ut det via var_dump:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
Den ternära operatorn bör endast användas i de enklaste fallen, eftersom dess användning försvårar förståelsen av koden.
Låt en variabel $num ges, som
kan vara antingen negativ eller positiv.
Skriv till variabeln $res talet
1 om variabeln $num är större
än eller lika med noll, och talet -1 om variabeln
$num är mindre än noll.