Ternárny operátor v PHP

Nech máme nasledujúci kód, ktorý kontroluje, či má používateľ už 18 rokov alebo nie:

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

Ako vidíte, konštrukcia if-else je potrebná len na to, aby zapísala určitú hodnotu do premennej $adult. Pre takéto úlohy, keď v podmienke dochádza len k zápisu jednej premennej, existuje kratšie riešenie pomocou takzvaného ternárneho operátora.

Jeho syntax je takáto:

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

Operátor funguje tak: ak je podmienka pravdivá, vrátí sa value1, v opačnom prípade - value2. Prepíšme kód uvedený na začiatku lekcie pomocou ternárneho operátora:

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

Mimochodom, je možné výsledok nezapísať do premennej, ale okamžite ho vypísať pomocou var_dump:

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

Ternárny operátor by sa mal používať len v tých najjednoduchších prípadoch, pretože jeho používanie sťažuje pochopenie kódu.

Задание 1

Nech je daná premenná $num, ktorá môže byť záporná alebo kladná. Zapíšte do premennej $res číslo 1, ak je premenná $num väčšia alebo rovná nule, a číslo -1, ak je premenná $num menšia ako nula.