php Фигурные скобки -- когда они нужны, какой смысл несут (оператораные скобки)
Primary tabs
Когда операторные скобки влияют на работу
Фигурные скобки в php, позволяют выделить некоторые блоки кода для управляющих конструкций (таких как тела циклов, ветки условного оператора if и т.д.), при этом они не должны отделяться от этих конструкций точкой с запятой.
Например, код:
if (7 < 5) echo 5; echo 7; echo 8;
Работает иначе, чем с добавлением фигурных скобок (вы должны понимать почему):
if (7 < 5) { echo 5; echo 7; } echo 8;
-- т.к. в последнем случае в ветке истинности if оказывается больше действий (2 операции), вместе единственной в предыдущем случае.
Когда не влияют
Также важно понимать, что в принципе любой код можно окружить операторными скобками, если до них нет никакой специальной управляющей конструкции, то они ни на что не повлияют, сравните например, работу кода:
$a = 2; $b = $a; $c = 5 + $b; echo $c;
и кода:
{ $a = 2; $b = $a; } $c = 5 + $b; echo $c;
Как отделить управляющую конструкцию от тела
В соответствии с замечаниями выше точка с запятой можно лишить цикл тела, например:
for ($iter = 0; $iter < $n; $iter ++); { $value = rand( $min , $max ); echo "Текущее число: $value <br>"; }
Здесь мы имеем по сути:
- цикл, в котором нечего выполнять (у него нет тела, так как сразу после "головы" стоит точка с запятой)
- фрагмент кода из двух операторов никак не связанный с заголовком цикла, а значит как и все нециклические конструкции в php, эти строки будут выполняться одна за другой последовательно и один раз.
Таким образом точка с запятой в данном примере просто ломают изначальную задумку программиста. При этом сообщения об ошибке не будет, так как это допустимый синтаксис, такое ошибки называют логическими (несмотря на то, что в данном случае она может быть просто опечаткой или следствием незнания синтаксиса языка программирования).
- Log in to post comments
- 4572 reads