最流行的PHP 代码规范

“PHP是最好的编程语言” ;-) 那么PHPer习惯使用什么样的代码规范呢?sideeffect.kr通过分析GitHub上托管的开源代码,得出了一些有趣的结果,让我们一起来看看吧。

code convention

缩进

空格(70.172 %),Tab(29.828 %)

基于 600,614 次提交统计。

定义类时大括号的位置

独占一行(55.703 %)

class Foo
{
  // ...
}

不独占一行(44.297 %)

class Foo {
  // ...
}

基于 68,516 次提交统计。

控制语句大括号的位置

同一行(65.937 %)

if($baz) {
  // ..
} elseif($bar) {
  // ..
} else {
  // ..
}

while ($i <= 10) {
  // ..
}

switch($beer) {
  // ..
}

不同行 (34.063 %)

if($baz)
{
  // ..
}
elseif($bar)
{
  // ..
}
else
{
  // ..
}

while ($i <= 10)
{
  // ..
}

switch($beer)
{
  // ..
}

基于 292,588 次提交统计。

方法定义大括号的位置

同一行(64.442 %)

function bar($baz) {
  // ...
}

不同行(35.558 %)

function bar($baz)
{
  // ...
}

基于 65,030 次提交统计。

条件语句周围空格

有空格 (89.979 %)

if ($baz) {
  // ...
} elseif ($bar) {
  // ...
} else {
  // ...
}

while ($i <= 10) {
  // ...
}

switch ($beer) {
  // ...
}

无空格 (10.021 %)

if($baz){
  // ...
}elseif($bar){
  // ...
}else{
  // ...
}

while($i <= 10){
  // ...
}

switch($beer){
  // ...
}

基于 219,583 次提交统计。

条件语句内部空格

无空格(82.808 %)

if ($baz) {
  // ...
} elseif ($bar) {
  // ...
}

while ($i <= 10) {
  // ...
}

switch ($beer) {
  // ...
}

有空格(17.192 %)

if ( $baz ) {
  // ...
} elseif ( $bar ) {
  // ...
}

while ( $i <= 10 ) {
  // ...
}

switch ( $beer ) {
  // ...
}

基于 296,011 次提交统计。

方法声明参数外部

无空格(82.407 %)

function bar($baz){
  // ...
}

有空格 (17.593 %)

function bar ($baz) {
  // ...
}

基于 15,519 次提交统计

方法声明参数内部

无空格(84.828 %)

function bar($baz){
  // ...
}

有空格(15.172 %)

function bar( $baz ){
  // ...
}

基于 52,324 次提交统计

类名

PascalCase (75.973 %)

class FooBarBaz {
  // ...
}

Snake_Pascal_Case (14.564 %)

class Foo_Bar_Baz {
  // ...
}

snake_case (6.025 %)

class foo_bar_baz {
  // ...
}

camelCase (2.851 %)

class fooBarBaz {
  // ...
}

Snake_first_letter_uppercase (0.299 %)

class Foo_bar_baz {
  // ...
}

CAPS_SNAKE_CASE (0.287 %)

class FOO_BAR_BAZ {
  // ...
}

基于 60,467 次提交统计。

常量

CAPS_SNAKE_CASE (97.511 %)

const BAR_BAZ = 0;

define('BAR_BAZ', 0);

snake_case (1.088 %)

const bar_baz = 0;

define('bar_baz', 0);

camelCase (0.842 %)

const barBaz = 0;

define('barBaz', 0);

PascalCase (0.507 %)

const BarBaz = 0;

define('BarBaz', 0);

Snake_Pascal_Case (0.052 %)

const Bar_Baz = 0;

define('Bar_Baz', 0);

基于 30,144 次提交统计。

函数名

camelCase (74.26 %)

function barBaz(){
  // ...
}

snake_case (23.644 %)

function bar_baz(){
  // ...
}

PascalCase (1.868 %)

function BarBaz(){
  // ...
}

CAPS_SNAKE_CASE (0.14 %)

function BAR_BAZ(){
  // ...
}

Snake_Pascal_Case (0.087 %)

function Bar_Baz(){
  // ...
}

基于 185,946 次提交统计

方法声明

static在可见性之后(85.272 %)

class Foo
{
  public static function bar($baz)
  {
    // ...
  }
}

abstract(或final)在可见性之前(7.483 %)

class Foo
{
  abstract public function bar($baz);
  // ...
}

static在可见性之前(5.519 %)

class Foo
{
  static public function bar($baz)
  {
    // ...
  }
}

abstract(或final)在可见性之后(1.726 %)

class Foo
{
  public abstract function bar($baz);
  // ...
}

基于 45,467 次提交统计。

译注:此处统计归类不当。应当拆分成两类分别统计。

最大行宽

80字符 (90.269 %)

120字符 (7.074 %)

150字符 (2.657 %)

基于 636,577 次提交统计


编译 SegmentFault


SegmentFault_行业快讯
第一时间为开发者提供行业相关的实时热点资讯

思否编辑部官方账号,欢迎私信投稿、提供线索、沟通反馈。

3.9k 声望
116.9k 粉丝
0 条评论
推荐阅读
高效开源的网络扫描框架 —— NINJA-PingU
NINJA-PingU作为一个扫描框架,可不仅仅只有ping这样简单的功能,他是一个专门为大型网络扫描所设计的框架,兼顾效率的同时,支持插件的开发。

思否编辑部阅读 4.2k

怎样用 PHP 来实现枚举?
在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,...

唯一丶25阅读 6.3k评论 4

git+Github的正确姿势
前言此文章是笔者在 github 使用中的一些经验性总结,学习的新姿势会同步更新,记录。目录一、可访问性二、展示自己的项目三、专业指引四、其他物料五、参与开源贡献可访问性你可以正常访问 github.com 网页并且...

RainBow15阅读 6k评论 5

一个开源vue网站博客,nuxt开源网站,前后端分离项目
开媛笔记,基于nuxt ssr首屏服务器端渲染 。用于分享、记录、交流和学习,希望可以帮助到小伙伴们。同时网站在不断更新,创造属于猿(媛)的世界 -$Bao Yalong ..Let's Go! [链接]

jigsaw16阅读 8.4k评论 3

图片防盗链破解 解决图片防盗链问题 反向代理
当客户端(浏览器)向服务器请求内容的时候,会提交一个header,这个header中包含了如:浏览器信息、cookie等内容,那么有一个叫referer的东东,也包含在这里面。

TANKING7阅读 11.2k评论 5

Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 2k评论 2

封面图
Git 入门与实践
Git 入门与实践推荐:猴子都能懂的 GIT 入门Git --everything-is-loca 官方文档Git 教程-廖雪峰Git 的使用方式有很多。图形化 —— 小乌龟(Tortoise Git )、命令行—— git bash、IDE 集成等 ......目录1. 基础配置...

RainBow1阅读 2.2k

思否编辑部官方账号,欢迎私信投稿、提供线索、沟通反馈。

3.9k 声望
116.9k 粉丝
宣传栏