Ternary operatorius PHP

Tarkime, kad turime tokį kodą, kuris tikrina ar vartotojui jau yra 18 metų ar ne:

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

Kaip matote, if-else konstrukcija reikalinga tik tam, kad įrašyti tam tikrą reikšmę į kintamąjį $adult. Tokioms užduotims, kai mūsų sąlygoje atsiranda tik vieno kintamojo įrašymas, egzistuoja trumpesnis sprendimas naudojant vadinamąjį ternary operatorių.

Jo sintaksė yra tokia:

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

Operatorius veikia taip: jei sąlyga teisinga, tada grąžinama value1, priešingu atveju - value2. Perrašykime pamokos pradžioje pateiktą kodą naudodami ternary operatorių:

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

Beje, galima, netgi neįrašant rezultato į kintamąjį, iškart išvesti jį per var_dump:

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

Ternary operatorius turėtų būti naudojamas tik pačiais paprasčiausiais atvejais, nes jo naudojimas apsunkina kodo supratimą.

Задание 1

Tarkime, duotas kintamasis $num, kuris gali būti arba neigiamas, arba teigiamas. Įrašykite į kintamąjį $res skaičių 1, jei kintamasis $num yra didesnis ar lygus nuliui, ir skaičių -1, jei kintamasis $num yra mažesnis už nulį.