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