PHP - If / else, for, foreach, while - без фигурных скобок?

Что-то, что действительно хотелось бы знать, но никогда не узнавать, это ярлыки в PHP.

В настоящее время я кодирую функцию сforeach цикл только с одним утверждением внутри. Я попытался опустить фигурные скобки, как вы можете сделать в структурах управления if / else, и это работает. Нет ошибок

foreach($var as $value)
    $arr[] = $value;

Теперь я попытался использовать его таким же образом, но поместив в него блок if / else. Опять работает и без ошибок.

foreach($var as $value)
    if(1 + 1 == 2) {
        $arr[] = $value;
    };

Затем я подумал: «Почему это работает?» и пропустил точку с запятой. Еще работает. Поэтому я попытался использовать оператор if / else без фигурных скобок внутри цикла foreach и снова, все еще работая и без ошибок. Но действительно ли цикл foreach замкнут / закончен прямо сейчас?

foreach($var as $value)
    if(1 + 1 == 2)
        $arr[] = $value;

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

Поэтому мой главный вопрос: когда я могу опустить фигурные скобки и в какой структуре / цикле / функции? Я знаю, что я могу определенно сделать это вif а такжеelse, Но что насчетwhile, for а такжеforeach?

И да, я знаю, что это небезопасно, умно, что угодно, чтобы кодировать без фигурных скобок, и есть такие сокращения, как$condition ? true : false; а такжеif: doSomething(); endif;, endfor; а такжеendforeach;, Я не хочу узнавать о сокращениях, я просто хочу понять условия, когда и где можно опустить фигурные скобки.

Ответы на вопрос(12)

Ваш ответ на вопрос