Ternaarioperaattori PHP:ssä

Oletetaan, että meillä on seuraava koodi, joka tarkistaa onko käyttäjällä jo 18 vuotta vai ei:

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

Kuten näette, if-else -rakenne tarvitaan vain sen vuoksi, että kirjoitetaan tietty arvo muuttujaan $adult. Tällaisia tehtäviä varten, joissa ehdossa tapahtuu vain yhden muuttujan kirjoittaminen, on olemassa lyhyempi ratkaisu ns. ternaarioperaattorin kautta.

Sen syntaksi on seuraava:

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

Operaattori toimii seuraavasti: jos ehto on tosi, palautetaan value1, muussa tapauksessa - value2. Kirjoitetaan oppitunnin alussa esitetty koodi uudelleen ternaarioperaattorin avulla:

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

Voit muuten olla kirjoittamatta tulosta muuttujaan, vaan tulostaa sen välittömästi var_dump:in kautta:

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

Ternaarioperaattoria tulisi käyttää vain yksinkertaisimmissa tapauksissa, koska sen käyttö vaikeuttaa koodin ymmärtämistä.

Задание 1

Oletetaan, että on annettu muuttuja $num, joka voi olla joko negatiivinen tai positiivinen. Kirjoita muuttujaan $res luku 1, jos muuttuja $num on suurempi tai yhtä suuri kuin nolla, ja luku -1, jos muuttuja $num on pienempi kuin nolla.