Problem opcionih vitičastih zagrada u uslovima u PHP
Iako PHP dozvoljava prikazane skraćenice bez vitičastih zagrada, ja ih generalno ne preporučujem, jer su izvor teško uočljivih grešaka.
Recimo da postoji sledeći kod:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Recimo da smo sada odlučili da, u slučaju da je
uslov ispunjen, dodamo i drugi
echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Međutim, bez vitičastih zagrada unutar uslova se nalazi samo prvi ispis, odnosno prvi ispis će se izvršiti kada je uslov tačan, a drugi – uvek.
Zapravo, naš kod je ekvivalentan ovome:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // ovaj red se našao van uslova
?>
A mi bismo želeli ovakav kod:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // ovaj red je unutar uslova
}
?>
Zbog toga se preporučuje da uvek koristite vitičaste zagrade, kako ne biste upali u ovakve greške.
Bez pokretanja koda, odredite šta će biti ispísano na ekran:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Bez pokretanja koda, odredite šta će biti ispísano na ekran:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Bez pokretanja koda, odredite šta će biti ispísano na ekran:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>