首頁 後端開發 PHP問題 你真的了解PHP編碼風格規範麼?

你真的了解PHP編碼風格規範麼?

Aug 27, 2019 pm 06:01 PM
編碼規範

由於PHP的彈性,很多人寫起程式碼來也不講求一個好的程式碼規範,使得本來就靈活的PHP程式碼看起來很亂,其實PSR規範中的PSR-1和PSR-2已經定義了PHP編碼中的一些規範,只要我們好好遵守這些規範,即使是使用彈性的腳本語言,也能寫出非常漂亮工整的程式碼。首先我們來看一下已經通過的PSR規範,然後大致講解一下PSR-1和PSR-2規範的一些具體要求

已通過的PSR:

你真的了解PHP編碼風格規範麼?

PSR-1基礎編碼規格:

1、開閉標籤
首先,PHP程式碼必須以

2、副作用
PHP檔案要麼宣告類別、介面、函數等,要麼執行邏輯運算(如讀寫文件或向瀏覽器發送輸出),但不應該同時兼具兩者。

3、命名
類別的命名必須遵守大寫開頭的駝峰式命名規範。換言之,類別名稱應以大寫字母開頭。屬性的命名方式沒有強制要求,但應該保持一致。方法名稱必須符合小寫開頭的駝峰式命名規範。類別常數中的所有字母必須大寫,單字之間以以下方式劃線分隔。

PSR2-編碼風格規格:

#1、PSR-1要求PHP程式碼以標籤結束,而應該以一個空白行結束。

2、namespace宣告後應該插入一個空白行,use宣告語句區塊後面也應該要有一個空白行。不要在同一行程式碼中進行多次use聲明。

3、類別的開始和結束
class關鍵字、類別名,以及extends和implements關鍵字必須在同一行。如果一個類別實作了多個接口,那麼這些接口名可以在類別聲明的同一行中,也可以各佔一行。如果選擇將這些介面名稱放在多行中,那麼第一個介面名稱必須自成一行,而不是跟在implements關鍵字後面。類別的開始花括號({)應該寫在函數宣告後自成一行,結束花括號(})也應該寫在類別後面自成一行。也就是說,類別宣告看起來如下所示:

class EarthGame extends Game implements
    Playable,   
    Savable
{    
    //类体
}
登入後複製

也可以將類別名稱與類別宣告放在同一行中。

class EarthGame extends Game implements Playble, Savable
{     
    //类体
}
登入後複製

4、屬性宣告
每個屬性都必須有存取修飾符(public、private或protected)。不行使用關鍵字var聲明屬性。 PSR-1中已經涵蓋了屬性名的規格:可以使用底線、小寫駝峰式命名或大寫駝峰式命名方式,但應該保持一致。 (個人推薦屬性採用小寫式駝峰)

5、方法的開始和結束
所有方法必須具有存取修飾符(public、private或protected)。存取修飾符必須在abstract或final之後,static之前。具有預設值得方法參數應該放在參數列表的末端。

單行宣告
方法的開始花括號({)應該寫在方法名稱後面自成一行,結束花括號(})也應該寫在方法體後面自成一行(直接跟在方法代碼之後)。方法參數清單不應該以空格開始或結束(即應該緊貼包裹著它們的圓括號)。對於每個參數,參數名稱(或預設值)後面應該有一個逗號,且逗號後面有一個空格。這聽起來似乎有些複雜,如下所示:

final public static function generateTile(int $diamondCount, bool $polluted = false)
{
   //方法体
 }
登入後複製

多行宣告
如果方法有很多參數,那麼單行方法宣告是不實際的。此時我們可以分割參數列表,以便將每個參數(包括類型、參數變數、預設值和逗號)單獨放在縮排的一行中。這種情況下,結束圓括號應該放在參數清單後面一行中,並與方法宣告的起始位置對齊。開始花括號({)應該在同一行的結束圓括號之後,以空格分隔。方法體應該從新的一行開始。同樣,這聽起來似乎很複雜,以下範例應該能幫助你理解這條規定。

public function __construct(
    int $size,
    string $name,
    bool $warparound = false,
    bool $aliens = false
) {  
    //方法体
   }
登入後複製

6、行與縮排
程式碼應該使用4個空格符來縮進,而不是使用製表符。我們可以檢查編輯器設置,將其設置為按下Tab鍵時使用4個空格而不是製表符。每行程式碼的長度不應該超過120個字元。

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

$earthGanme = new EarthGame(   
   5,
   'earth', 
   true,
   true
);
$earthGame::generateTile(5, true);
登入後複製

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

$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脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++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的應用中,開發人員需要專注於一些常見的安全性問題,並遵循一些安全編碼規範來預防潛在

分享一套Go編碼規範!歡迎收藏! 分享一套Go編碼規範!歡迎收藏! Dec 09, 2022 pm 05:08 PM

最近在專案中也 codereview 了不少 Go 語言的程式碼,必須總結下程式碼規範,算是一個筆記記錄了。分享給大家,歡迎收藏學習!

See all articles