Il problema dell'opzionalità delle parentesi graffe nelle condizioni in PHP

Nonostante il PHP permetta le abbreviazioni mostrate sopra con le parentesi graffe, in generale non consiglio di farlo, poiché è un ricettacolo di errori difficili da individuare.

Supponiamo ad esempio che ci sia il seguente codice:

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

Supponiamo ora che decidiamo, nel caso in cui la condizione sia soddisfatta, di fare anche un secondo echo:

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

Tuttavia, senza le parentesi graffe all'interno della condizione si trova solo la prima istruzione echo, cioè la prima echo verrà eseguita se la condizione è vera, mentre la seconda - sempre.

Di fatto, il nostro codice equivale a questo:

php<?php
  $test = 3;
  
  if ($test > 0) {
    echo $test;
  }
  
  echo '+++'; // questa riga è finita fuori dalla condizione
?>

Mentre noi vorremmo un codice così:

php<?php
  $test = 3;
  
  if ($test > 0) {
      echo $test;
      echo '+++'; // questa riga è dentro la condizione
  }
?>

Proprio per questo motivo si raccomanda di eseguire sempre l'inserimento delle parentesi graffe, per non incorrere in errori di questo tipo.

Задание 1

Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:

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

Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:

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