A ternáris operátor a PHP-ben
Tételezzük fel, hogy a következő kódunk van, amely ellenőrzi,
hogy a felhasználó elmúlt-e már 18 éves vagy sem:
<?php
$age = 17;
if ($age >= 18) {
$adult = true;
} else {
$adult = false;
}
var_dump($adult);
?>
Amint látható, a if-else szerkezet
csak arra szolgál, hogy egy meghatározott
értéket írjon a $adult változóba.
Ilyen feladatokra, amikor a feltételben csak
egy változó írása történik, létezik egy
rövidebb megoldás az úgynevezett
ternáris operátor segítségével.
Szintaxisa a következő:
<?php
variable = condition ? value1 : value2;
?>
Az operátor a következőképpen működik: ha a feltétel igaz,
akkor a value1 értéket adja vissza, ellenkező
esetben a value2 értéket. Írjuk át a
lecke legelején bemutatott kódot ternáris operátorral:
<?php
$age = 17;
$adult = $age >= 18 ? true: false;
var_dump($adult);
?>
Egyébként az eredményt nem kell változóba írni,
hanem azonnal ki is lehet írni a var_dump segítségével:
<?php
$age = 17;
var_dump( $age >= 18 ? true: false );
?>
A ternáris operátort csak a legegyszerűbb esetekben szabad használni, mivel használata megnehezíti a kód megértését.
Tételezzük fel, hogy adott egy $num változó, amely
lehet negatív vagy pozitív.
Írjon a $res változóba az 1 számot,
ha a $num változó nagyobb vagy egyenlő nullával,
és az -1 számot, ha a $num változó
nullánál kisebb.