PHP:n if-ehtojen valinnaisten aaltosulkeiden ongelma

Vaikka PHP sallii yllä näytetyt lyhennykset ilman aaltosulkeita, en yleisesti ottaen suosittele niin tekemään, sillä ne ovat vaikeasti havaittavien virheiden pesä.

Oletetaan esimerkiksi, että on seuraava koodi:

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

Oletetaan nyt, että päätimme siinä tapauksessa, jos ehto täyttyy, tehdä myös toisen echo:n:

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

Kuitenkin, ilman aaltosulkeita ehdon sisällä on vain ensimmäinen tulostus, eli ensimmäinen tulostus toimii, kun ehto on tosi, mutta toinen - aina.

Käytännössä koodimme vastaa tällaista:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // tämä rivi on ehdon ulkopuolella
?>

Mutta me halusimme tällaista koodia:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // tämä rivi on ehdon sisällä
  }
?>

Tästä syystä on suositeltavaa aina suorittaa aaltosulkeiden asettaminen, jotta ei joudu tällaiseen virheeseen.

Задание 1

Päättelemällä (ajaamatta koodia), mitä ruudulle tulostetaan:

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

Päättelemällä (ajaamatta koodia), mitä ruudulle tulostetaan:

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

Päättelemällä (ajaamatta koodia), mitä ruudulle tulostetaan:

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