Проблемът с незадължителните фигурни скоби в условията в 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 '+++'; // този ред е вътре в условието
}
?>
Exactly затова се препоръчва винаги да се поставят фигурни скоби, за да не се попада в подобни грешки.
Без да стартирате кода, определете какво ще се изведе на екрана:
<?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 '+++';
?>