PHP-də şərtlərdə fiqurlu mötərizələrin isteğe bağlı olması problemi

PHP-nin yuxarıda göstərilən fiqurlu mötərizəli qısaltmalara icazə verməsinə baxmayaraq, mən ümumiyyətlə bunu etməyi tövsiyə etmirəm, çünki bu, aşkar edilmesi çətin xətalar üçün məhsuldar bir yerdir.

Məsələn, aşağıdakı kod nümunəsi götürək:

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

Tutaq ki, indi biz qərar verdik ki, şərt ödənildikdə, ikinci bir echo da yerinə yetirək:

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

Ancaq, fiqurlu mötərizələr olmadan, şərtin daxilində yalnız birinci çap durur, yəni birinci çap şərt doğru olduqda işləyəcək, ikincisi isə həmişə.

Əslində bizim kodumuz belə bir kodla ekvivalentdir:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // bu sətir şərtin xaricində qaldı
?>

Oysa biz belə bir kod istəyirdik:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // bu sətir şərtin daxilində
  }
?>

Məhz buna görə də həmişə fiqurlu mötərizələri qoymağı tövsiyə edirəm, beləliklə bu cür xətalarə düşməsiniz.

Задание 1

Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:

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

Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:

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

Kodu işə salmadan, ekrana nə çıxacağını müəyyən edin:

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