php Правила оформления кода - форматирование, отступы, пробелы
Primary tabs
На основе стандарта PSR-2 (где и можно почитать о подробностях).
Отступы
Внутри каждого блока следует отступать на "1 таб", например:
// блок функции function echo_pr($pr) { echo $pr; } // блок условия (неполная форма) if ($a > 2) { echo $pr; } // блок условия (полная форма) if ($a > 2) { echo $pr; } else { echo "5"; } // вложение блоков (правило применяется рекурсивно) // если после точки с запятой нет переноса строки - ставим пробел for ($i = 1; $i < 5; $i++) { if ($a > 2) { echo $pr; } }
Фигурные скобки вокруг "блоков" - тел управляющих конструкций
Такой поход позволяет в разы лучше видеть структуру программы, также следует отметить, что даже без использования фигурных скобок вокруг тела цикла его тело всё равно должно выделяться отступом:
while (list($key, $value) = each($fruits)) echo "Индекс: $key; Значение: $value\n"; // единственное действие в теле цикла
-- то есть синтаксис языка программирования позволяет php позволяет так писать, но стандарт PSR-2 требует, чтобы:
Тело каждой управляющей конструкции ДОЛЖНО быть заключено в фигурные скобки. Это позволяет стандартизировать внешний вид управляющих конструкций с снизить риск возникновения ошибок при добавлении новых строк в тело конструкции.
А значит даже для единственного действия в блоке необходимо использовать фигурные скобки:
while (list($key, $value) = each($fruits)) { echo "Индекс: $key; Значение: $value\n"; // единственное действие в теле цикла }
Пробелы и их соседи
Функции
После имени функции перед скобками пробел не ставим (также как не ставим после открывающей и перед закрывающей скобками):
function meFuncName($a, $b) { // код return $a + $b; }
Аналогично и при вызове функции:
$a = meFuncName($a, $b);
Массивы
После имени массива перед квадратной скобкой пробел не нужен:
$arr[5] = 25;
Операторы
Вокруг операторов пробелы ставим (а перед точкой с запятой нет):
$a = $b + $c * $d;
После запятой пробел ставим, а перед - нет (с точкой же - как с обычным оператором):
echo $c . $b . $a; echo $c, $b, $a;
С другой стороны с запятой, когда речь идёт о повторном вызове операции echo, тоже можно работать как с обычным оператором (на ваш выбор):
echo $c , $b , $a;
Но (!) при перечислении аргументов функции -- строго по правилу:
function($a, $b, $value, $value2) { // код }
Фигурные скобки для разных блоков
Для блоков функций и классов открывающая фигурная скобка ставится на новой строке:
// блок функции function echo_pr($pr) { echo $pr; }
Класс:
class MyClass { public $first; public $second = 3; // переменная со значением по умолчанию const pi = 3.1415926; // констанкта public function save($param1) { // метод (функция) } }
А для всех остальных блоков на той же строке что и оператор блока, например -- для цикла while:
// блок функции while (a<b) { echo $a; $a = $a + 1; }
Именование переменных
Именование переменных не относится к PSR-2, но всё же авторы этих строк рекомендуют следующее соглашение по именованию.
- Log in to post comments
- 9109 reads
moberaptor
Fri, 01/12/2018 - 23:38
Permalink
Те, кто до этого изучал
Те, кто до этого изучал Delphi, обратите, пожалуйста, внимание, что отступ оформляется 4 пробелами!
vedro-compota
Fri, 01/12/2018 - 23:51
Permalink
ну обычно используют 1 таб. А
ну обычно используют 1 таб. А вот IDE уже настраивают чтобы этот таб конвертировался в 4 пробела, например.
_____________
матфак вгу и остальная классика =)
moberaptor
Sun, 01/14/2018 - 22:28
Permalink
У дельфистов немного по
У дельфистов немного по другому, там tab не конвертируется и стандарт два пробела, пруф