Могу ли я использовать вложенные операторы без фигурных скобок?
Не найдя "предисловия" в руководстве по PHP, я нашел свой собственный.
Вы бы сказали, что рекомендуется следующее? Я фанат компактного кода и считаю, что он хорошо читается. Плюс это работает.
$consequences = array("You ", "will ", "burn ", "for ", "this!");
if(!empty($consequences)) foreach($consequences as $consequence) {
// 100 lines of code to be inserted here
echo $consequence;
} else echo "No consequences";
Перед тестированием я подумал, что не могу использовать фигурные скобки внутри "оператора без фигурных скобок", но, похоже, вы можете.
Есть ли аргументы для использования фигурных скобок в этом случае?
1 ответ
Хотя для вас это, возможно, компактно и аккуратно, оно не следует общепринятому принципу написания этих вещей. Ваш код будет трудно читать другим разработчикам. Хотя не существует абсолютного "стандарта" для написания кода, существует несколько соглашений, которые приняты большим процентом населения мира.
Одна линия if (something) do;
утверждения являются злыми, разбейте их на две строки, даже если вам не нужно использовать фигурные скобки:
if (something)
do;
Это не только легче для чтения, но и облегчает отладку, так как точка останова может быть помещена в строку "do", если используется отладчик, или если пошагово выполняется код, будет ясно, если выражение оценено как истинное или нет.
В вашем случае это станет:
if(!empty($consequences))
foreach($consequences as $consequence) {
// 100 lines of code to be inserted here
echo $consequence;
}
else
echo "No consequences";
Хотя это и не "компактно", как вы бы это назвали, оно легко обслуживаемо, и очень легко увидеть путь к коду, который является вашей основной целью при написании понятного кода, который потом легко отлаживать.
Также обратите внимание, что начиная с PHP5.4 array
Ключевое слово больше не требуется в PHP, вы можете использовать следующее:
$consequences = ["You ", "will ", "burn ", "for ", "this!"];
Что не только более "компактно", но и более стандартно встроено в другие языки, такие как C, и, как таковое, очень читабельно.
Короче говоря, если вы не желаете корректировать свою точку зрения на то, что такое "аккуратный" код, вам придется бороться в этой отрасли. Другим будет трудно работать с вами, и вам будет трудно читать код, написанный другими.