PHP даги шартлардаги ифода кавалларининг мажбурий эмаслиги муаммоси

PHP юқорида кўрсатилган ифода каваллари билан қисқартиришларга рухсат берса-да, мен умуман, бундай қилишни тавсия бермайман, чунки бу қийин сезиладиган хатолар манбаидир.

Масалан, куйидаги код бор деб фараз қилайлик:

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

Энди деб фараз қилайлик, биз шарт бажарилган тақдирда, яна иккинчи echo ни бажаришни хоҳладик:

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

Аммо, ифода кавалларисиз шарт ичида фақат биринчи чиқиш (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 '+++';
?>