То, что действительно хотел бы знать, но так и не узнал, - ярлыки в 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;
. Я не хочу изучать сокращения, я просто хочу понять условия, когда и где можно опустить фигурные скобки.