Težava z neobveznimi zavitimi oklepaji v pogojih v PHP
Kljub temu, da PHP dopušča zgoraj prikazane okrajšave z zavitimi oklepaji, jih na splošno ne priporočam, saj so razmnoževalnik težko ujetljivih napak.
Recimo, da imamo na primer naslednjo kodo:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Recimo, da smo se zdaj odločili, da v primeru, če
je pogoj izpolnjen, naredimo še drugi
echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Vendar pa je brez zavitih oklepajev znotraj pogoja le prvi izpis, kar pomeni, da se bo prvi izpis sprožil ob izpolnjenem pogoju, drugi pa - vedno.
Dejansko je naša koda enakovredna tej:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // ta vrstica se je izkazala za zunaj pogoja
?>
Mi pa bi želeli takšno kodo:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // ta vrstica je znotraj pogoja
}
?>
Prav zato je priporočljivo vedno postaviti zavite oklepaje, da ne pride do tovrstnih napak.
Brez zagon kode določite, kaj se bo izpisalo na zaslon:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Brez zagon kode določite, kaj se bo izpisalo na zaslon:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Brez zagon kode določite, kaj se bo izpisalo na zaslon:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>