PHP sąlygų sakiniuose esančių garbanotųjų skliaustų neprivalomumo problema

Nepaisant to, kad PHP leidžia aukščiau parodytus sutrumpinimus su garbanaisiais skliaustais, aš apskritai nerekomenduoju taip daryti, nes tai yra sunkiai pastebimų klaidų šaltinis.

Tarkime, pavyzdžiui, yra toks kodas:

php<?php
  $test = 3;
  
  if ($test > 0)
    echo $test;
?>

Tarkime, kad dabar nusprendėme, jei sąlyga tenkinama, atlikti ir antrą echo:

php<?php
  $test = 3;
  
  if ($test > 0)
    echo $test;
    echo '+++';
?>

Tačiau, be garbanųjų skliaustų, sąlygos viduje yra tik pirmasis išvedimas, tai yra, pirmasis išvedimas bus vykdomas esant teisingai sąlygai, o antrasis - visada.

Faktiškai mūsų kodas yra ekvivalentus šiam:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // ši eilutė pasirodė už sąlygos ribų
?>

O mes norėtume tokį kodą:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // ši eilutė yra sąlygos viduje
  }
?>

Būtent todėl rekomenduojama visada išdėstyti garbanąsias skliaustus, kad nepatrukti į tokias klaidas.

Задание 1

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

php<?php
  $num = 5;
  
  if ($num === 5)
    echo $num;
    echo '+++';
?>
Задание 2

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

php<?php
  $num = 0;
  
  if ($num === 5)
    echo $num;
    echo '+++';
?>
Задание 3

Nepaleisdami kodo, nustatykite, kas bus atvaizduota ekrane:

php<?php
  $num = 0;
  
  if ($num === 5)
    echo $num;
    echo '---';
  echo '+++';
?>