php Фигурные скобки -- когда они нужны, какой смысл несут (оператораные скобки)

Когда операторные скобки влияют на работу

Фигурные скобки в 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>";  
}

Здесь мы имеем по сути:

  1. цикл, в котором нечего выполнять (у него нет тела, так как сразу после "головы" стоит точка с запятой)
  2. фрагмент кода из двух операторов никак не связанный с заголовком цикла, а значит как и все нециклические конструкции в php, эти строки будут выполняться одна за другой последовательно и один раз.

Таким образом точка с запятой в данном примере просто ломают изначальную задумку программиста. При этом сообщения об ошибке не будет, так как это допустимый синтаксис, такое ошибки называют логическими (несмотря на то, что в данном случае она может быть просто опечаткой или следствием незнания синтаксиса языка программирования).

Key Words for FKN + antitotal forum (CS VSU):