Problém nepovinnosti složených závorek v podmínkách v PHP

Přestože PHP umožňuje výše uvedená zkrácení se složenými závorkami, já je obecně nedoporučuji, protože jsou živnou půdou pro těžko postižitelné chyby.

Předpokládejme například následující kód:

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

Předpokládejme nyní, že jsme se rozhodli v případě, že je podmínka splněna, provést také druhý echo:

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

Avšak bez složených závorek je uvnitř podmínky pouze první výpis, to znamená, že první výpis se spustí při splněné podmínce, a druhý - vždy.

Náš kód je ve skutečnosti ekvivalentní tomuto:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // tento řádek se ocitl mimo podmínku
?>

Ale my bychom chtěli takový kód:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // tento řádek je uvnitř podmínky
  }
?>

Právě proto se doporučuje vždy provádět umístění složených závorek, abyste neupadli do chyb tohoto druhu.

Задание 1

Bez spuštění kódu určete, co se vypíše na obrazovku:

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

Bez spuštění kódu určete, co se vypíše na obrazovku:

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

Bez spuštění kódu určete, co se vypíše na obrazovku:

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