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
- 9776 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 не конвертируется и стандарт два пробела, пруф