В прошлой заметке мы рассмотрели синтаксис условного оператора в PHP. В этой заметке речь пойдет об операторных скобках. С ними вы будете сталкиваться постоянно. Это базовое понятие любого языка программирования.
На вопрос, что такое операторные скобки, нам поможет ответить Wikipedia:
Операторные скобки — скобки или команды, определяющие в языке программирования блок команд, воспринимаемый как единое целое, как одна команда.
В языке Pascal для обозначения операторных скобок используется конструкция begin…. end. В Си-подобных языках (к коим относится и PHP), операторные скобки описываются с помощью символов {…}.
Т.е. другими словами, несколько команд, заключенных в операторные скобки воспринимаются как 1 команда.
В статье об условиях в PHP был пример:
$b) {
echo "Переменная A больше, чем B";
}
else {
echo "Переменная B больше, чем A";
}
?>
В этом примере операторные скобки используются 2 раза. Они обрамляют операторы:
- echo «Переменная A больше, чем B»;
- echo «Переменная B больше, чем A»;
В этом примере в скобки заключен всего 1 оператор, так что это равносильно вот такой записи:
$b)
echo "Переменная A больше, чем B";
else
echo "Переменная B больше, чем A";
?>
Синтаксис:
if (условие)
выражение 1;
else
выражение 2;
Допустим, мы хотим, чтобы в случае невыполнения условия на экран также выводилась еще одна строка. Также изменим значения наших переменных так, чтобы теперь $a была > $b. Модифицируем наш код:
$b)
echo "Переменная A больше, чем B. ";
else
echo "Переменная B больше, чем A. ";
echo "Да..да А на самом деле меньше B. ";
?>
Выполняем… Что же мы видим на экране:
Переменная A больше, чем B. Да..да А на самом деле меньше B.
Где-то здесь закралась ошибка. Как вы уже догадались все дело в том, что так как у нас условие истинно (а > b), то выполняется код:
echo "Переменная A больше, чем B. ";
В ветке else у нас содержится только 1 выражение:
echo "Переменная B больше, чем A. ";
Следующее выражение будет выполняться не зависимо от условия. Вот так:
$b)
echo "Переменная A больше, чем B. ";
else
echo "Переменная B больше, чем A. ";
echo "Да..да А на самом деле меньше B. ";
?>
Теперь используем операторные скобки и объединим 2 выражения в ветке else:
$b) {
echo "Переменная A больше, чем B. ";
}
else {
echo "Переменная B больше, чем A. ";
echo "Да..да А на самом деле меньше B. ";
}
?>
Код стал гораздо наглядней. Теперь PHP понимает, что в случае невыполнения условия ($a > $b) нужно вывести 2 строки. А если условие истинно — только одну.
Мой вам большой совет — всегда используйте операторные скобки, даже если не нужно объединять несколько операторов в 1 блок. Дело в том, что:
- код так лучше воспринимается. Окинув быстрым взглядом код, мы видим отдельные его блоки, а не винегрет из букв и цифр.
- в старый код частенько приходиться вносить изменения. Если у вас не стояли операторные скобки, а вы (как в нашем случае) дописали какой-то код, то логика программы будет неверной. Вы можете даже сразу этого не заметить.