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