Для отступа используйте одну табуляцию на отступ.
Содержат if, for, while, switch и т.д. Ниже приведён пример использования оператора if, т.к. он является наиболее сложным из них:
if ((condition1) || (condition2)) {
action1;
} elseif ((condition3) && (condition4)) {
action2;
} else {
defaultaction;
}
|
Оператор должен отделяться одним пробелом от открывающейся скобки, чтобы отличать управляющую структуру и вызов функции.
Настоятельно рекомендуется использовать фигурные скобки даже в случаях, когда они формально не обязательны. Они улучшают читаемость кода и снижают вероятность появления логических ошибок, возникающих при добавлении новых строк.
При вызове функции не допускается наличие пробелов между именем функции и открывающейся скобкой, открывающейся скобкой и первым параметром, последним параметром и закравающейся скобкой, закравающейся скобкой и точкой с запятой. Пробел ставится между запятой и следующим параметром. Пример:
$var = foo($bar, $baz, $quux); |
Как показано выше пробелы должны стоять с каждой стороны знака равенства, использующегося для передачи значения возвращаемого функцией переменной.
Правила описания функций следуют из формата вызова функций. В конце строки объявления функции ставится открывающаяся фигурная скобка. Список глобальных переменных (если используются) должен быть сразу на следующей строке после открывающейся фигурной скобкой. Между списком переменных и первой строкой кода функции должна быть пустая строка. Если глобальные переменные не объявляются, то необходимо поставить пустую строку между открывающейся фигурной скобкой и первой строкой кода функции.
function fooFunction($arg1, $arg2 = '') {
global $foo1, $foo2;
if (condition) {
statement;
}
return $val;
}
|
Аргументы, для кторых указываются значения по умолчанию, объявляются в конце списка аргументов. Всегда старайтесь, чтобы функция возвращала значащий результат если это необходимо. Ниже более длинный пример:
function connect(&$dsn, $persistent = false) {
if (is_array($dsn)) {
$dsninfo = &$dsn;
} else {
$dsninfo = DB::parseDSN($dsn);
}
if (!$dsninfo || !$dsninfo['phptype']) {
return $this->raiseError();
}
return true;
}
|
Всячески приветствуются недокументированные комментарии. Главное практическое правило гласит: если Вы смотрите на секцию кода и думаете "Что-то меня ломает описывать это...", то просто-таки жизнено необходимо описать этот фрагмент пока Вы не забыли как он работает.
Везде, где Вы безусловно включаете файл класса, используйте require_once(). Везде, где Вы условно включаете файл класса (например, обрабатывающие методы), используйте include_once(). В любом случае будте уверены, что файлы включаются только один раз. Они заносятся в один список файлов, поэтому Вам не надо волноваться, что они смешаются - файл включенный с помощью require_once() не будет опять включен include_once().
Для разграничения PHP кода используйте <?php ?> , а не <? ?>
Имена констант должны всегда быть в верхнем регистре, а для разделения слов используется подчеркивание.
Имена файлов должны задаваться в нижнем регистре и не содержать пробелов. HTML файлы должны быть с расширением .html, а PHP файлы с расширением .php. Когда это возможно, шаблонные файлы должны иметь имя PHP файла, которое будет использоваться, например, index.html будет шаблоном для index.php. Когда один PHP файл использует более одного шаблона, то шаблоны должны иметь сходные имена, например: user.php может использовать userlist.html и userform.html соответственно для списка пользователей и редактирования пользователей.