⊗ppPmCdTO 101 of 447 menu

Ternární operátor v PHP

Předpokládejme, že máme následující kód, který kontroluje, zda je uživateli 18 let nebo ne:

<?php $age = 17; if ($age >= 18) { $adult = true; } else { $adult = false; } var_dump($adult); ?>

Jak vidíte, konstrukce if-else je potřebná pouze k tomu, aby zapsala určitou hodnotu do proměnné $adult. Pro takové úlohy, kdy v podmínce dochází pouze k zápisu jedné proměnné, existuje kratší řešení pomocí takzvaného ternárního operátoru.

Jeho syntaxe je následující:

<?php variable = condition ? value1 : value2; ?>

Operátor funguje takto: pokud je podmínka pravdivá, vrátí se value1, v opačném případě - value2. Přepišme kód uvedený na začátku lekce pomocí ternárního operátoru:

<?php $age = 17; $adult = $age >= 18 ? true: false; var_dump($adult); ?>

Mimochodem, není nutné zapisovat výsledek do proměnné, lze jej okamžitě vypsat pomocí var_dump:

<?php $age = 17; var_dump( $age >= 18 ? true: false ); ?>

Ternární operátor by měl být používán pouze v nejjednodušších případech, protože jeho použití znesnadňuje pochopení kódu.

Nechť je dána proměnná $num, která může být záporná nebo kladná. Zapište do proměnné $res číslo 1, pokud je proměnná $num větší nebo rovna nule, a číslo -1, pokud je proměnná $num menší než nula.

hufrptiduz