Проблема необязательности фигурных скобок в 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 '+++'; // эта строка внутри условия
}
?>
Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки.