Тернарен оператор в 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 е по-малка от нула.