Operator trójargumentowy w PHP

Załóżmy, że mamy następujący kod, sprawdzający czy użytkownik ma już 18 lat czy nie:

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

Jak widzisz, konstrukcja if-else jest potrzebna tylko po to, aby zapisać określoną wartość w zmiennej $adult. Dla takich zadań, gdy w warunku odbywa się tylko zapis jednej zmiennej, istnieje bardziej krótkie rozwiązanie poprzez tak zwany operator trójargumentowy.

Jego składnia jest taka:

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

Operator działa tak: jeśli warunek jest prawdziwy, to zwracane jest value1, w przeciwnym przypadku - value2. Przepiszmy przedstawiony na samym początku lekcji kod za pomocą operatora trójargumentowego:

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

Można, przy okazji, nie zapisywać wyniku w zmiennej, a od razu wypisać przez var_dump:

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

Operatora trójargumentowego należy używać tylko w najprostszych przypadkach, ponieważ jego użycie utrudnia zrozumienie kodu.

Задание 1

Załóżmy, że dana jest zmienna $num, która może być albo ujemna, albo dodatnia. Zapisz w zmiennej $res liczbę 1, jeśli zmienna $num jest większa lub równa zero, i liczbę -1, jeśli zmienna $num jest mniejsza od zera.