Ternaarne operaator PHP-s

Oletagem, et meil on järgmine kood, mis kontrollib kas kasutaja on juba <18 aastat vana või mitte:

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

Nagu näete, on <if-else konstruktsioon vajalik ainult selleks, et kirjutada muutujasse <$adult kindel väärtus. Selliste ülesannete jaoks, kus tingimuses toimub ainult ühe muutuja väärtustamine, on olemas lühem lahendus nn <ternaarse operaatori kaudu.

Selle süntaks on järgmine:

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

Operaator töötab nii: kui tingimus on tõene, siis tagastatakse <value1, vastasel juhul - <value2. Kirjutame üles tunni alguses toodud koodi uuesti, kasutades ternaarset operaatorit:

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

Muide, võib tulemust mitte muutujasse kirjutada, vaid kohe väljastada läbi <var_dump:

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

Ternaarset operaatorit tuleks kasutada ainult kõige lihtsamatel juhtudel, kuna selle kasutamine raskendab koodi mõistmist.

Задание 1

Oletagem, et on antud muutuja <$num, mis võib olla kas negatiivne või positiivne. Kirjutage muutujasse <$res arv <1, kui muutuja <$num on suurem või võrdne nulliga, ja arv <-1, kui muutuja <$num on väiksem kui null.