Problém nepovinnosti zložených zátvoriek v podmienkach v PHP

Napriek tomu, že PHP umožňuje vyššie uvedené skratky so zloženými zátvorkami, ja to vo všeobecnosti neodporúčam, pretože ide o živnú pôdu pre ťažko zachytiteľné chyby.

Majme napríklad nasledujúci kód:

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

Povedzme, že sme sa teraz rozhodli, že v prípade, ak je podmienka splnená, urobíme aj druhý echo:

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

Avšak, bez zložených zátvoriek je vnútri podmienky len prvý výstup, to znamená, že prvý výstup sa spustí pri splnenej podmienke, a druhý - vždy.

Náš kód je v skutočnosti ekvivalentný tomuto:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // tento riadok sa ocitol mimo podmienky
?>

Ale my by sme chceli takýto kód:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // tento riadok je vnútri podmienky
  }
?>

Práve preto sa odporúča vždy používať zložené zátvorky, aby ste nepadli do chýb tohto druhu.

Задание 1

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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

Bez spustenia kódu určite, čo sa vypíše na obrazovku:

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