Тернарен оператор во PHP

Нека имаме следниов код, кој проверува дали корисникот има 18 години или не:

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

Како што можете да видите, конструкцијата if-else е потребна само за да се запише одредена вредност во променливата $adult. За такви задачи, кога во условот се случува само запишување на една променлива, постои пократко решение преку таканаречениот тернарен оператор.

Неговиот синтаксис е следниот:

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

Операторот функционира на следниов начин: ако условот е точен, тогаш се враќа value1, во спротивен случај - value2. Ајде да го преработиме кодот даден на почетокот на лекцијата преку тернарниот оператор:

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

Можно е, патем, да не се запише резултатот во променлива, туку веднаш да се испечати преку var_dump:

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

Тернарниот оператор треба да се користи само во наједноставните случаи, бидејќи неговата употреба го отежнува разбирањето на кодот.

Задание 1

Нека е дадена променливата $num, која може да биде или негативна или позитивна. Запишете во променливата $res број 1, ако променливата $num е поголема или еднаква на нула, и број -1, ако променливата $num е помала од нула.