Koder.uz

3 of 402 menu

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

Именно поэтому рекомендуется всегда выполнять расстановку фигурных скобок, дабы не попадать в такого рода ошибки. 

uz ru
light night