PHPの条件文における中括弧の省略に関する問題

PHPでは上記のように中括弧を省略した記述が可能ですが、一般的にはそのように記述することをお勧めしません。なぜなら、これは見つけにくいエラーの温床となるからです。

例えば、次のようなコードがあるとします:

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

ここで、条件が真の場合に2つ目のechoも行いたいと決めたとします:

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

しかし、中括弧がない場合、条件の内部にあるのは最初の出力文のみです。つまり、最初の出力は条件が真の場合に実行され、2つ目の出力は常に実行されます。

実際、このコードは次のものと同等です:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // この行は条件の外側にきてしまった
?>

本来私たちが意図したコードは、おそらく次のようなものです:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // この行は条件の内側
  }
?>

この種のエラーに陥らないために、常に中括弧を記述することが推奨されています。

Задание 1

コードを実行せずに、画面に何が表示されるか判断してください:

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

コードを実行せずに、画面に何が表示されるか判断してください:

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

コードを実行せずに、画面に何が表示されるか判断してください:

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