Сокращенный синтаксис if-else в PHP

Для начала вам следует знать, что конструкция else не является обязательной. В следующем примере текст выведется только в том случае, если значение переменной равно 1. В противном случае просто ничего не случится:

<?php $test = 1; if ($test == 1) { echo '+'; } ?>

Если переменная $test равна 10, то пусть на экран выведется слово 'верно'. В противном случае пусть ничего не произойдет.

Необязательность фигурных скобок

В случае, если в фигурных скобках if или else будет только одно выражение, можно эти фигурные скобки не писать. Пусть, к примеру, дан вот такой код со всеми скобками:

<?php if ($test == 0) { echo '+'; } else { echo '-'; } ?>

Можно сократить его вот так:

<?php if ($test == 0) echo '+'; else echo '-'; ?>

Или так:

<?php if ($test == 0) { echo '+'; } else echo '-'; ?>

Можно также убрать все скобки, но оформить все не в линию, а вот так:

<?php if ($test == 0) echo '+'; else echo '-'; ?>

Перепишите следующий код в сокращенной форме:

<?php if ($test == 0) { echo 'верно'; } else { echo 'неверно!'; } ?>

Перепишите следующий код в сокращенной форме:

<?php if ($test == 0) { echo 'верно'; } ?>

Замечание

Не смотря на то, что 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 '+++'; // эта строка внутри условия } ?>

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