Problemet med valgfrie krøllede parenteser i betingelser i PHP
På trods af at PHP tillader de viste ovenstående forkortelser med krøllede parenteser, anbefaler jeg generelt ikke at gøre det, da det er en kilde til vanskeligt opdagelige fejl.
Lad os for eksempel have følgende kode:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Lad os nu sige, at vi besluttede, at hvis
betingelsen er opfyldt, også at lave en anden
echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Men uden krøllede parenteser er kun den første udskrift inde i betingelsen, det vil sige, den første udskrift vil udløses under den rigtige betingelse, og den anden - altid.
Faktisk svarer vores kode til dette:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // denne linje endte uden for betingelsen
?>
Men vi ville ønske en kode som denne:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // denne linje er inde i betingelsen
}
?>
Det er derfor, det anbefales altid at anvende krøllede parenteser for at undgå denne type fejl.
Uden at køre koden, skal du bestemme, hvad der vil blive vist på skærmen:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Uden at køre koden, skal du bestemme, hvad der vil blive vist på skærmen:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Uden at køre koden, skal du bestemme, hvad der vil blive vist på skærmen:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>