Отступы улучшают читабельность кода. Для их оформления используйте четыре пробела (но не знак табуляции).
Хорошо
<?php
switch ($expr) {
case 1:
echo 'Uno';
break;
case 2:
echo 'Dos';
break;
case 3:
echo 'Tres';
break;
default:
echo 'Hola';
break;
}
?>
Плохо
<?php
switch ($expr) {
case 1:
echo 'Uno';
break;
case 2:
echo 'Dos';
break;
case 3:
echo 'Tres';
break;
default:
echo 'Hola';
break;
}
?>
2. Ключевые слова и константы true / false / null
Ключевые слова PHP, а также константы true, false и null следует писать в нижнем регистре.
Хорошо
<?php
$equal = null;
if ($a > $b) {
echo "a больше, чем b";
$equal = false;
} elseif ($a == $b) {
echo "a равен b";
$equal = true;
} else {
echo "a меньше, чем b";
$equal = false;
}
?>
Плохо
<?PHP
$equal = NULL;
If ($a > $b) {
ECHO "a больше, чем b";
$equal = False;
} ELSEif ($a == $b) {
Echo "a равен b";
$equal = TRUE;
} ELSE {
eCHO "a меньше, чем b";
$equal = falSE;
}
?>
3. Определение пространств имён и блоков импорта
Оставляйте одну пустую строку после определения пространства имён.
Импорт пространств имён располагайте после определения пространства имён.
Для каждого импорта пространства имён используйте отдельную строку со своим use.
После блока импорта оставляйте одну пустую строку.
Хорошо
<?php
namespace Vendor\Package;
use FooClass;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
// ... далее следует PHP-код ...
?>
Плохо
<?php
namespace Vendor\Package;
use FooClass, BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;
// ... далее следует PHP-код ...
?>
4. Методы и аргументы
Пробел после имени метода. После имени метода не должно быть пробела.
Хорошо
<?php
// PHP-код
public function fooBarBaz($arg1)
// PHP-код
?>
Плохо
<?php
// PHP-код
public function fooBarBaz ($arg1)
// PHP-код
?>
Открывающая скобка. Открывающую фигурную скобку ставьте на отдельной строке.
Хорошо
<?php
// PHP-код
public function fooBarBaz($arg1)
{
// PHP-код
?>
Плохо
<?php
// PHP-код
public function fooBarBaz ($arg1) {
// PHP-код
?>
Закрывающая скобка. Закрывающую фигурную скобку ставьте на следующей за телом метода строке.
Хорошо
<?php
// PHP-код
public function fooBarBaz($arg1)
{
echo 'Adiós';
}
// PHP-код
?>
Плохо
<?php
// PHP-код
public function fooBarBaz ($arg1)
{
echo 'Adiós'; }
// PHP-код
?>
Пробелы в определении метода. Не должно быть пробелов после открывающей и перед закрывающей круглыми скобками в определении метода.
Хорошо
<?php
// PHP-код
public function fooBarBaz($arg1)
// PHP-код
?>
Плохо
<?php
// PHP-код
public function fooBarBaz( $arg1 )
// PHP-код
?>
Пробелы в списке аргументов. В списке аргументов перед запятыми не должно быть пробелов, после каждой запятой – один пробел.
Хорошо
<?php
// PHP-код
public function fooBarBaz($arg1, $arg2, $arg3)
// PHP-код
?>
Плохо
<?php
// PHP-код
public function fooBarBaz ($arg1 , $arg2 , $arg3)
// PHP-код
?>
Аргументы на нескольких строках. Список аргументов можно разделять на несколько строк, каждая из которых дополнена слева одним отступом (четырьмя пробелами). В таком случае первый элемент списка аргументов нужно располагать с новой строки, и в каждой строке указывайте только один аргумент. При этом закрывающая круглая скобка и открывающая фигурная скобка должны располагаться вместе на своей отдельной строке, а между ними должен быть один пробел.
Хорошо
<?php
// PHP-код
public function aVeryLongMethodName(
$arg1,
$arg2,
$arg3
) {
// тело метода
}
// PHP-код
?>
Плохо
<?php
// PHP-код
public function aVeryLongMethodName(
$arg1,
$arg2,
$arg3)
{
// тело метода
}
// PHP-код
?>
5. Вызовы методов и функций
Пробелы. В коде вызова функций и методов не ставьте пробел:
между именем функции или метода и открывающей круглой скобкой;
Запятые. В списке аргументов перед запятыми не должно быть пробелов, после каждой запятой – один пробел.
Хорошо
<?php
Foo::bar($arg1, $arg2, $arg3);
?>
Плохо
<?php
Foo::bar($arg1 ,$arg2,$arg3);
?>
Аргументы. Список аргументов можно разделять на несколько строк, каждая из которых дополняется слева одним отступом (четырьмя пробелами). В таком случае первый элемент списка аргументов должен начинаться с новой строки, и в каждой строке должен быть указан только один аргумент.
Конструкция switch должна выглядеть следующим образом. Выражение case смещено на один отступ (четыре пробела) от switch, а ключевое слово break (или иное слово, обозначающее выход из конструкции) располагается на том же уровне отступов, что и тело case. Если в непустом теле case умышленно не используется break, допишите комментарий в стиле // no break.
Хорошо
<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
// no break
case 2:
case 3:
case 4:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
?>
Плохо
<?php
switch ($expr) {
case 0:
echo 'First case, with a break';
break;
case 1:
echo 'Second case, which falls through';
case 2:
case 3:
case 4:
echo 'Third case, return instead of break';
return;
default:
echo 'Default case';
break;
}
?>
7. Конструкции while и do while
Конструкцию while следует оформлять следующим образом. Между while и ( ставится пробел. После ( и до ) пробелов не должно быть. ) и { разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). } пишется на новой строке после тела конструкции.
Хорошо
<?php
while ($expr) {
// тело конструкции
}
?>
Плохо
<?php
while($expr){
// тело конструкции
}
?>
Конструкция do while должна выглядеть так:
Хорошо
<?php
do {
// тело конструкции
} while ($expr);
?>
Плохо
<?php
do{
// тело конструкции
}while($expr);
?>
8. Конструкция for
Пример оформления конструкции for представлен ниже. Между for и ( ставится пробел. После ; ставится пробел. ) и { разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). } пишется на новой строке после тела конструкции.
Хорошо
<?php
for ($i = 0; $i < 10; $i++) {
// тело for
}
?>
Плохо
<?php
for($i=0; $i<10; $i++) {
// тело for
}
?>
9. Конструкция foreach
Конструкция foreach должна выглядеть следующим образом. Между foreach и ( ставится пробел. Перед и после => ставится пробел. ) и { разделяются пробелом. Тело конструкции отделяется одним отступом (четыре пробела). } пишется на новой строке после тела конструкции.
Хорошо
<?php
foreach ($iterable as $key => $value) {
// тело foreach
}
?>
Плохо
<?php
foreach($iterable as $key=>$value){
// тело foreach
}
?>
10. Конструкция try catch
Оформляйте конструкцию try catch следующим образом. Между try и { ставится пробел. } и следующий за ним catch находятся на одной строке. Между catch и ( ставится пробел. ) и { разделяются пробелом. Тело try и тело catch отделяется одним отступом (четыре пробела). } пишется на новой строке после тела конструкции.
Хорошо
<?php
try {
// тело try
} catch (FirstExceptionType $e) {
// тело catch
} catch (OtherExceptionType $e) {
// тело catch
}
?>
Плохо
<?php
try{
// тело try
} catch (FirstExceptionType $e){
// тело catch
} catch (OtherExceptionType $e){
// тело catch
}
?>