Мушкили ихтиёрӣ нестӣ дар истифодаи кавакҳои фигурӣ дар шартҳои if дар PHP
Гарчанде ки PHP ғайримуқаррариҳои нишондодашударо боло бо кавакҳои фигурӣ иҷозат медиҳад, ман умуман ин тавр карданро тавсия намедиҳам, зеро ин манбаи хатогиҳои душвотифҳом аст.
Бигзор, масалан, рамзи зерин мавҷуд бошад:
<?php
$test = 3;
if ($test > 0)
echo $test;
?>
Бигзор акнун мо дар он ҳолат, ки шарт иҷро мешавад, қарор додем, ки интиқоли дуюмро низ иҷро кунем echo:
<?php
$test = 3;
if ($test > 0)
echo $test;
echo '+++';
?>
Аммо, бе кавакҳои фигурӣ дар дохили шарт фақат интиқоли аввал ҷойгир аст, яъне интиқоли аввал дар шарти дуруст иҷро мешавад, аммо дуюм - ҳамеша.
Дар асл, рамзи мо ба ин монанд аст:
<?php
$test = 3;
if ($test > 0) {
echo $test;
}
echo '+++'; // ин сатр берун аз шарт қарор гирифт
?>
Ва мо рамзи чунинро мехостем:
<?php
$test = 3;
if ($test > 0) {
echo $test;
echo '+++'; // ин сатр дар дохили шарт аст
}
?>
Аз ин рӯ, тавсия дода мешавад, ки ҳамеша тарҳрезии кавакҳои фигурӣ иҷро карда шавад, то дар чунин хатогиҳо наафтем.
Бидуни оғози рамз, муайян кунед, ки чӣ ба экран чоп мешавад:
<?php
$num = 5;
if ($num === 5)
echo $num;
echo '+++';
?>
Бидуни оғози рамз, муайян кунед, ки чӣ ба экран чоп мешавад:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '+++';
?>
Бидуни оғози рамз, муайян кунед, ки чӣ ба экран чоп мешавад:
<?php
$num = 0;
if ($num === 5)
echo $num;
echo '---';
echo '+++';
?>