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

本文比較了酸和基本數據庫模型,詳細介紹了它們的特徵和適當的用例。酸優先確定數據完整性和一致性,適合財務和電子商務應用程序,而基礎則側重於可用性和

本文討論了確保PHP文件上傳的確保,以防止諸如代碼注入之類的漏洞。它專注於文件類型驗證,安全存儲和錯誤處理以增強應用程序安全性。

本文討論了在PHP中實施API速率限制的策略,包括諸如令牌桶和漏水桶等算法,以及使用Symfony/Rate-limimiter之類的庫。它還涵蓋監視,動態調整速率限制和手

本文討論了使用password_hash和pyspasswify在PHP中使用密碼的好處。主要論點是,這些功能通過自動鹽,強大的哈希算法和SECH來增強密碼保護

本文討論了OWASP在PHP和緩解策略中的十大漏洞。關鍵問題包括注射,驗證損壞和XSS,並提供用於監視和保護PHP應用程序的推薦工具。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

Dreamweaver Mac版
視覺化網頁開發工具