php教程 php手册 理解学习PHP编码规范之源文件的编码规范

理解学习PHP编码规范之源文件的编码规范

Jun 21, 2016 am 09:01 AM
co

开头注释

所有的源文件都应该在开头有一个C语言风格的注释,其中列出类名、功能、版本信息、日期、作者和版权声明:


/*
 * 类名
 * 功能
 * 版本
 * 日期
 * 作者
 * 版权
 */

如果对文件进行了修改,应该在文件头中说明修改目的、修改日期、修改人,并变更文件的版本信息;如果修改问文件的一部分,则在文件中进行注释即可,并且标识出修改部分的起止位置

……

/*
 * 修改目的
 * 修改日期
 * 修改人
 * 版本
 */

……

修改起始

……

……

修改结束

……

3.2 引入语句

引入语句应该位于文件的头部,并在引入时说明引入文件的作用。例如:

//数据库操作类
require( “db.php” );

3.3 类的声明

1 类文档注释(/**……*/) 该注释中所需包含的信息,参见"文档注释"
2 类的声明
3 类实现的注释(/*……*/)如果有必要的话 该注释应包含任何有关整个类的信息,而这些信息又不适合作为类文档注释。
4 类的(静态)变量 首先是类的公共变量,随后是保护变量,再后是包一级别的变量(没有访问修饰符,access modifier),最后是私有变量。
5 实例变量 首先是公共级别的,随后是保护级别的,再后是包一级别的(没有访问修饰符),最后是私有级别的。
6 构造器
7 方法 这些方法应该按功能,而非作用域或访问权限,分组。例如,一个私有的类方法可以置于两个公有的实例方法之间。其目的是为了更便于阅读和理解代码

3.4 缩进排版

4个空格常被作为缩进排版的一个单位。缩进的确切解释并未详细指定(空格 vs. 制表符)。一个制表符等于8个空格(而非4个),所以在某些编辑器中,需要特别指定一下制表符的长度为4(UltraEdit),而在某些编辑器中,会将制表符转换为空格

3.5 行长度

尽量避免一行的长度超过80个字符,因为很多终端和工具不能很好处理之。

3.6 换行

当一个表达式无法容纳在一行内时,可以依据如下一般规则断开之:

- 在一个逗号后面断开
- 在一个操作符前面断开
- 宁可选择较高级别(higher-level)的断开,而非较低级别(lower-level)的断开
- 新的一行应该与上一行同一级别表达式的开头处对齐
- 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。

以下是断开方法调用的一些例子:


someMethod(longExpression1, longExpression2, longExpression3,
             longExpression4, longExpression5);

$var = someMethod1(longExpression1,
                 someMethod2(longExpression2,
                              longExpression3));

以下是两个断开算术表达式的例子。前者更好,因为断开处位于括号表达式的外边,这是个较高级别的断开。


$longName1 = $longName2 * ($longName3 + $longName4 - $longName5)
            + 4 * $longname6; //使用这种缩进方式

$longName1 = $longName2 * ($longName3 + $longName4
                   - $longName5) + 4 * $longname6; //避免这种

以下是两个缩进方法声明的例子。前者是常规情形。后者若使用常规的缩进方式将会使第二行和第三行移得很靠右,所以代之以缩进8个空格


//传统的缩进方式
function someMethod($anArg, $anotherArg, $yetAnotherArg,
          $andStillAnother) {
...
}

//利用8个连续空格避免过渡的缩进
function horkingLongMethodName($anArg,
     $anotherArg, $yetAnotherArg,
     $andStillAnother) {
...
}

if语句的换行通常使用8个空格的规则,因为常规缩进(4个空格)会使语句体看起来比较费劲。比如:


//不要使用这种缩进方式
if ((condition1 && condition2)
  || (condition3 && condition4)
  ||!(condition5 && condition6)) { //错误的换行方式,没有进行缩进
  doSomethingAboutIt(); //条件与此句对齐,造成阅读程序时很可能漏过此句
}

//应该使用这种缩进方式
if ((condition1 && condition2)
    || (condition3 && condition4)
    ||!(condition5 && condition6)) {
  doSomethingAboutIt();
}

//或者这样的缩进方式也可以
if ((condition1 && condition2) || (condition3 && condition4)
        ||!(condition5 && condition6)) {
  doSomethingAboutIt();
}

这里有三种可行的方法用于处理三元运算表达式:

$alpha = (aLongBooleanExpression) ? beta : gamma;

$alpha = (aLongBooleanExpression) ? beta
                 : gamma;

$alpha = (aLongBooleanExpression)
    ? beta
    : gamma;



본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)