Die probleem van die opsionele aard van krullerige hakies in voorwaardes in PHP
Ten spyte van die feit dat PHP die bogenoemde verkortings met krullerige hakies toelaat, sal ek dit oor die algemeen nie aanbeveel nie, aangesien dit 'n broeiplek is vir moeilik-opspeurbare foute.
Gestel daar is byvoorbeeld die volgende kode:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Gestel ons het nou besluit om, indien die voorwaarde waar is, ook 'n tweede echo te doen:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Maar, sonder die krullerige hakies is slegs die eerste echo binne die voorwaarde, dit wil sê die eerste echo sal uitgevoer word as die voorwaarde waar is, en die tweede een sal altyd uitgevoer word.
Ons kode is eintlik gelykstaande aan die volgende:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // hierdie reël het buite die voorwaarde beland
?>
Maar ons wou eintlik die volgende kode hê:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // hierdie reël is binne die voorwaarde
}
?>
Dit is presies daarom dat dit aanbeveel word om altyd krullerige hakies te gebruik, om nie in hierdie soort foute te verval nie.
Sonder om die kode uit te voer, bepaal wat op die skerm vertoon sal word:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Sonder om die kode uit te voer, bepaal wat op die skerm vertoon sal word:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Sonder om die kode uit te voer, bepaal wat op die skerm vertoon sal word:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>