Отсутствие запятой после break
Интересно знать, почему ваша программа ведет себя так, как она.
Общий синтаксис break
в РНР:
break Expression;
Выражение не является обязательным, но если присутствует его значение указывает, сколько вложенных ограждающие конструкции должны быть сломаны из.
break 0;
и break 1;
такие же, как break;
Ваш код эквивалентен
if($a==3)
break print"$a ";
Теперь print
функция в PHP всегда возвращают 1
. Следовательно, это эквивалентно
if($a==3)
break 1;
так, когда $a
является 3
печати его значение и перерыв.
Целесообразно использовать фигурные скобки, чтобы заключить тело условного или петлевого, даже если тело имеет один оператор. В этом случае, охватывающий if
тела в фигурных скобках:
if($a==3) {
break
}
print"$a ";
дал бы ошибку синтаксиса: PHP ожидает ;
, но находит }
Все вышеперечисленное относится к PHP continue
, а также. Таким образом, программа
for($a=0;$a<10;++$a)
{
if($a==3)
continue
print"$a ";
}
также печатает 3
по той же причине.
+1 для использования фигурных скобок. –
@bmb: + для брекетов. Я добавил это к моему ответу. – codaddict