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