PHP-ում պայմանների մեջ գանգուր փակագծերի օպցիոնալության խնդիրը

Չնայած այն հանգամանքին, որ PHP-ն թույլ է տալիս վերը նշված կրճատումները գանգուր փակագծերով, ես ընդհանուր առմամբ խորհուրդ չեմ տալիս այդպես անել, քանի որ դա դժվարությամբ բռնվող սխալների բուծման վայր է:

Ենթադրենք, օրինակ, կա հետևյալ կոդը:

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

Ենթադրենք, որ այժմ մենք որոշել ենք, որ եթե պայմանը կատարվում է, կատարել նաև երկրորդ echo-ը.

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

Սակայն, առանց գանգուր փակագծերի, պայմանի ներսում գտնվում է միայն առաջին տպելը, այսինքն՝ առաջին տպելը կգործի, երբ պայմանը ճիշտ է, իսկ երկրորդը՝ միշտ:

Փաստորեն, մեր կոդը համարժեք է հետևյալին.

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 '+++';
?>