A kapcsos zárójelek opcionális voltának problémája az if feltételekben PHP-ben

Annak ellenére, hogy a PHP megengedi a fent bemutatott rövidítéseket a kapcsos zárójelekkel, én általában véve nem ajánlom ezt megtenni, mivel ez nehezen felismerhető hibák forrása.

Legyen például a következő kód:

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

Tegyük fel, hogy most úgy döntöttünk, hogy abban az esetben, ha a feltétel teljesül, végrehajtunk egy második echo-ot is:

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

Azonban kapcsos zárójelek nélkül csak az első kiírás tartozik a feltételhez, vagyis az első kiírás akkor fog lefutni, ha a feltétel igaz, a második pedig - mindig.

Valójában a kódunk ekvivalens ezzel:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // ez a sor a feltételen kívülre került
?>

Mi viszont valójában ezt a kódot szerettük volna:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // ez a sor a feltételen belül van
  }
?>

Pontosan ezért ajánlott mindig elhelyezni a kapcsos zárójeleket, hogy ne kerüljünk ilyen jellegű hibákba.

Задание 1

A kód futtatása nélkül határozza meg, mit ír ki a képernyőre:

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

A kód futtatása nélkül határozza meg, mit ír ki a képernyőre:

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

A kód futtatása nélkül határozza meg, mit ír ki a képernyőre:

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