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
$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
$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
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // questa riga è finita fuori dalla condizione
?>
Mentre noi vorremmo un codice così:
<?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.
Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Senza eseguire il codice, determinate cosa verrà visualizzato sullo schermo:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>