Отступать есть куда!
...особенно если пишешь программу. Как-то я уже упоминал в этом блоге о стилях отступов при кодировании, относя отсутствие форматирования кода даже к типовым ошибкам начинающих.
На самом деле, пожалуй, всё равно, какого из стилей придерживаться, лишь бы придерживаться. Нередко программист придумывает и собственный способ вложения блоков. Есть ли какие-то "официальные" стили? Конечно. Вот основные из них для моего любимого размера отступа (Indentation), равного 1 пробелу и на примере синтаксиса PHP (отступ перед каждой строкой Starting indentation равен нулю).
Исходный плохо форматированный текст:
<?php function fun ($a,$b,$c) { operator1; operator2; operator3; return $val; } while (condition) operator; for (;;) { operator1; operator2; } do { operator1; operator2; operator3; } while (condition); if (cond1) { operator1; operator2; if (cond11) {operator11;operator12; }else if (cond12) operator13; else operator14; } else if (cond2) { operator1; operator2; } else { operator1; operator2; } switch ($a) { case 1: operator1; operator2; break; case 2:operator1; operator2; break; default: operator1; operator2; break; } $b = $a ? 'yes' : 'no'; ?>
K&R style (One true brace style) - мой стиль наиболее похож на этот, только else if
я всё же не пишу в одной строке с закрывающими скобками.
Со времён бессмертной книги Кернигана и Ритчи
известен как "Единственно Правильный Скобочный Стиль".
<?php function fun($a, $b, $c) { operator1; operator2; operator3; return $val; } while (condition) operator; for (;;) { operator1; operator2; } do { operator1; operator2; operator3; } while (condition); if (cond1) { operator1; operator2; if (cond11) { operator11; operator12; } else if (cond12) operator13; else operator14; } else if (cond2) { operator1; operator2; } else { operator1; operator2; } switch ($a) { case 1: operator1; operator2; break; case 2: operator1; operator2; break; default: operator1; operator2; break; } $b = $a ? 'yes' : 'no'; ?>
Allman style (BSD style) - так писал программист Олман утилиты для BSD. Фактически, это сегодня стандарт... с кучей лишних строк под открывающие скобочки :)
<?php function fun($a, $b, $c) { operator1; operator2; operator3; return $val; } while (condition) operator; for (;;) { operator1; operator2; } do { operator1; operator2; operator3; } while (condition); if (cond1) { operator1; operator2; if (cond11) { operator11; operator12; } else if (cond12) operator13; else operator14; } else if (cond2) { operator1; operator2; } else { operator1; operator2; } switch ($a) { case 1: operator1; operator2; break; case 2: operator1; operator2; break; default: operator1; operator2; break; } $b = $a ? 'yes' : 'no'; ?>
Whitesmiths style - назван в честь Whitesmiths C, одного из первых компиляторов с языка С, отличается уродливым расположением открывающих скобочек :)
<?php function fun($a, $b, $c) { operator1; operator2; operator3; return $val; } while (condition) operator; for (;;) { operator1; operator2; } do { operator1; operator2; operator3; } while (condition); if (cond1) { operator1; operator2; if (cond11) { operator11; operator12; } else if (cond12) operator13; else operator14; } else if (cond2) { operator1; operator2; } else { operator1; operator2; } switch ($a) { case 1: operator1; operator2; break; case 2: operator1; operator2; break; default: operator1; operator2; break; } $b = $a ? 'yes' : 'no'; ?>
GNU style - почти то же, что Уайтсмитс, но скобки расположены на собственном отступе, а не на одном уровне с операторами блока (при моих настройках этого отдельного отступа не будет видно). Стиль используется во всех исходниках проекта GNU.
<?php function fun($a, $b, $c) { operator1; operator2; operator3; return $val; } while (condition) operator; for (;;) { operator1; operator2; } do { operator1; operator2; operator3; } while (condition); if (cond1) { operator1; operator2; if (cond11) { operator11; operator12; } else if (cond12) operator13; else operator14; } else if (cond2) { operator1; operator2; } else { operator1; operator2; } switch ($a) { case 1: operator1; operator2; break; case 2: operator1; operator2; break; default: operator1; operator2; break; } $b = $a ? 'yes' : 'no'; ?>
Статья об отступах в англоязычной Вики - ещё больше стилей!
Проверь и отформатируй свой скрипт на PHP в любом из основных стилей
23.03.2017, 16:04 [3501 просмотр]