首页 后端开发 PHP问题 你真的了解PHP编码风格规范么?

你真的了解PHP编码风格规范么?

Aug 27, 2019 pm 06:01 PM
编码规范

由于PHP的灵活性,很多人写起代码来也不讲求一个好的代码规范,使得本就灵活的PHP代码看起来很乱,其实PSR规范中的PSR-1和PSR-2已经定义了在PHP编码中的一些规范,只要我们好好遵守这些规范,即使是使用灵活的脚本语言,也能写出非常漂亮工整的代码。首先我们来看一下已经通过的PSR规范,然后大致讲解一下PSR-1和PSR-2规范的一些具体要求

已通过的PSR:

PSR.jpg

PSR-1基础编码规范:

1、开闭标签
首先,PHP代码必须以

2、副作用
PHP文件要么声明类、接口、函数等,要么执行逻辑操作(如读写文件或向浏览器发送输出),但不应该同时兼具两者。

3、命名
类的命名必须遵守大写开头的驼峰式命名规范。换言之,类名应当以大写字母开头。属性的命名方式没有强制要求,但应该保持一致。方法名称必须符合小写开头的驼峰式命名规范。类常量中的所有字母必须大写,单词之间以下划线分隔。

PSR2-编码风格规范:

1、PSR-1要求PHP代码以标签结束,而应该以一个空白行结束。

2、namespace声明后应该插入一个空白行,use声明语句块后也应该要有一个空白行。不要在同一行代码中进行多次use声明。

3、类的开始和结束
class关键字、类名,以及extends和implements关键字必须在同一行中。如果一个类实现了多个接口,那么这些接口名可以在类声明的同一行中,也可以各占一行。如果选择将这些接口名放在多行中,那么第一个接口名必须自成一行,而不是跟在implements关键字后面。类的开始花括号({)应该写在函数声明后自成一行,结束花括号(})也应该写在类体后自成一行。也就是说,类声明看起来如下所示:

1

2

3

4

5

6

class EarthGame extends Game implements

    Playable,  

    Savable

{   

    //类体

}

登录后复制

也可以将类名与类声明放在同一行中。

1

2

3

4

class EarthGame extends Game implements Playble, Savable

{    

    //类体

}

登录后复制

4、属性声明
每个属性都必须有访问修饰符(public、private或protected)。不可以使用关键字var声明属性。PSR-1中已经涵盖了属性名的规范:可以使用下划线、小写驼峰式命名或大写驼峰式命名方式,但应该保持一致。(个人推荐属性采用小写式驼峰)

5、方法的开始和结束
所有方法必须具有访问修饰符(public、private或protected)。访问修饰符必须在abstract或final之后,static之前。具有默认值得方法参数应该放在参数列表的末尾。

单行声明
方法的开始花括号({)应该写在方法名后自成一行,结束花括号(})也应该写在方法体后自成一行(直接跟在方法代码之后)。方法参数列表不应该以空格开始或结束(即应该紧贴包裹着它们的圆括号)。对于每个参数,参数名(或默认值)后面应该有一个逗号,且逗号后面有一个空格。这听起来似乎有些复杂,如下所示:

1

2

3

4

final public static function generateTile(int $diamondCount, bool $polluted = false)

{

   //方法体

 }

登录后复制

多行声明
如果方法有很多参数,那么单行方法声明是不实际的。此时我们可以分割参数列表,以便将每个参数(包括类型、参数变量、默认值和逗号)单独放在缩进的一行中。这种情况下,结束圆括号应该放在参数列表后面一行中,并与方法声明的开始位置对齐。开始花括号({)应该在同一行的结束圆括号之后,以空格分隔。方法体应该从新的一行开始。同样,这听起来似乎很复杂,以下示例应该能帮助你理解这条规定。

1

2

3

4

5

6

7

8

public function __construct(

    int $size,

    string $name,

    bool $warparound = false,

    bool $aliens = false

) { 

    //方法体

   }

登录后复制

6、行与缩进
代码应该使用4个空格符来缩进,而不是使用制表符。我们可以检查编辑器设置,将其设置为按下Tab键时使用4个空格而不是制表符。每行代码的长度不应该超过120个字符。

7、方法与函数调用
方法名称和开始圆括号之间不能有空格。方法调用中的参数列表的规则与方法声明中的参数列表规则相同。换言之,对于单行调用,开始圆括号后或结束圆括号前不能有空格。每个参数之后应该紧跟一个逗号,下一个参数前应该有一个空格。如果需要使用多行代码进行方法调用,那么每个参数应该自成一行并缩进,而且结束圆括号也应该自成一行。

1

2

3

4

5

6

7

$earthGanme = new EarthGame(  

   5,

   'earth',

   true,

   true

);

$earthGame::generateTile(5, true);

登录后复制

8、流程控制
流程控制关键字(if、for、while等)后面必须紧跟一个空格。但是,开始圆括号后不能有空格。同样,结束圆括号前不能有空格。因此内容应该紧贴在括号内的。与类和(单行)函数声明相比,流程控制代码的开始花括号应该与结束圆括号在同一行。结束花括号应该自成一行。以下是一个简单的示例。

1

2

3

4

5

6

$title = [];for ($x = 0; $x < $diamondCount; $x++) {    if ($polluted) {

        $title[] = new PollutionDecorator(new DiamondDecorator(new Plains()));

    } else {

        $title[] = new DiamondDecorator(new Plains());

    }

}

登录后复制

想了解更多相关问题请访问PHP中文网:PHP视频教程

以上是你真的了解PHP编码风格规范么?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

处理Oracle导入中文乱码问题的技巧分享 处理Oracle导入中文乱码问题的技巧分享 Mar 09, 2024 pm 10:03 PM

处理Oracle导入中文乱码问题的技巧分享在使用Oracle数据库进行数据导入的过程中,经常会遇到中文数据出现乱码的情况。这可能是由于字符集不匹配、数据源编码问题或者数据库配置错误等原因导致的。为了解决这个问题,本文将分享一些处理Oracle导入中文乱码问题的技巧,方便大家在实际操作中顺利导入中文数据。一、检查数据库字符集在处理中文乱码问题之前,首先需要检查

Python开发注意事项:避免常见的编码错误 Python开发注意事项:避免常见的编码错误 Nov 22, 2023 pm 05:18 PM

Python作为一种流行的编程语言,在软件开发领域越来越受欢迎。然而,由于Python语言的特性,有时候会出现一些编码错误。本文将介绍一些常见的Python编码错误,以及避免这些错误的方法,希望能帮助开发者更好地编写Python代码。使用合适的编码方式Python支持多种编码方式,比如UTF-8、UTF-16、GB2312等。在编写代码时,确保选择了适合项目

Go语言注释编码规范详解 Go语言注释编码规范详解 Mar 23, 2024 pm 09:54 PM

Go语言注释编码规范详解在编程中,注释是一种非常重要的编码规范,它可以帮助其他开发者理解代码的含义和逻辑。尤其对于团队合作开发来说,规范的注释能够提高代码的可读性和可维护性。本文将详细介绍Go语言中的注释编码规范,并提供具体的代码示例来展示如何规范的书写注释。1.单行注释在Go语言中,单行注释以//开头,后面跟上注释内容。单行注释主要用于对代码的某一行进行

手写PHP API框架(一)之PSR规范 手写PHP API框架(一)之PSR规范 Feb 10, 2023 am 10:31 AM

本篇文章给大家带来了关于php的相关知识,其中主要跟大家聊一聊编码规范,也建议大家在开发中尽量遵循规范,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

PHP底层开发原理探讨:编码规范和最佳实践 PHP底层开发原理探讨:编码规范和最佳实践 Sep 08, 2023 pm 12:37 PM

PHP底层开发原理探讨:编码规范和最佳实践导语:PHP是一种非常流行的服务器端编程语言,其底层开发原理对于开发人员来说是非常重要的。本文将深入探讨PHP底层开发的编码规范和最佳实践,并通过代码示例来加深理解。一、编码规范代码风格统一在PHP底层开发中,保持代码风格的统一性是非常重要的,可以提高代码的可读性和可维护性。使用一个通用的代码风格规范,如PSR-2,

C++开发注意事项:避免C++代码中的编码规范问题 C++开发注意事项:避免C++代码中的编码规范问题 Nov 22, 2023 am 08:35 AM

在进行C++开发时,除了关注功能实现和性能优化等方面的问题外,开发人员还需要注意代码的编码规范。良好的编码规范不仅可以提高代码的可读性和可维护性,还有助于减少错误和增加代码的一致性。本文将介绍一些常见的C++开发注意事项,帮助开发人员避免编码规范问题。使用有意义的命名:变量、函数和类的命名应该能够准确地反映其用途和功能。避免使用单个字母或无意义的缩写作为命名

Python最佳实践:安全编码规范引导 Python最佳实践:安全编码规范引导 Jun 30, 2023 pm 12:25 PM

Python在安全编码规范中的最佳实践介绍随着网络的快速发展和互联网的普及,安全编码成为了软件开发中一个至关重要的环节。在这个过程中,开发人员需要使用一些最佳实践来确保他们编写的代码是安全的。Python是一种流行的编程语言,被广泛应用于网络应用程序和系统开发。在Python的应用中,开发人员需要关注一些常见的安全问题,并遵循一些安全编码规范来预防潜在

了解PHP底层开发原理:编码规范和最佳实践指南 了解PHP底层开发原理:编码规范和最佳实践指南 Sep 11, 2023 pm 06:05 PM

了解PHP底层开发原理:编码规范和最佳实践指南在当今的Web开发领域中,PHP作为一种广泛使用的脚本语言,被许多开发人员选为首选工具。然而,对于许多PHP开发者来说,了解PHP底层开发原理以及如何编写规范的代码可能是一项挑战。本文将介绍一些PHP底层开发的基本原理,以及编码规范和最佳实践指南,帮助读者提高PHP开发的效率和质量。一、PHP底层开发原理PHP的

See all articles