在本系列文章(有關如何在實際情況下開發有效的PHP代碼)的第3部分中,Amol Hatwar討論了如何構建最有效的功能型函數,使用這些函數不會犧牲太多性能或可管理性。作者重點闡述了如何編寫可重用函數,並介紹了如何避免與該任務相關的一些最常見問題。
歡迎回來。在本系列文章的第1部分中,我討論了一些基本的PHP設計規則,並介紹了如何編寫安全、簡單、與平台無關且快速的代碼。在第2部分中,我介紹了變量,並討論了它們在PHP編碼中的用法 — 好的和壞的實踐。
在本文中,您將了解如何在PHP中明智地使用函數。在每一種高級編程語言中,程序員都可以定義函數,PHP也不例外。唯一的區別在於,您不必擔心函數的返回類型。
深入研究
函數可用於:
將幾行代碼封裝成一條語句。
簡化代碼。
最重要的是,將應用程序作為更小的應用程序相互協調的產物。
對於從編譯語言(如 C/C++)轉到PHP的開發人員來說,PHP 的性能級別是令人吃驚的。在使用 CPU 和內存資源方面,用戶定義的函數非常昂貴。這主要是因為PHP是解釋型和松散類型的。
包裝與否
有些開發人員僅僅因為不喜歡函數的名稱就把他們使用的每個函數都包裝起來,而另一些開發人員卻根本不喜歡使用包裝。
包裝現有的PHP函數而不添加或補充現有的功能,是完全不能接受的。除了會增加大小和執行時間外,這樣的重命名函數有時可能會帶來管理上的惡夢。
代碼中的內聯函數會導致莫名其妙的代碼,甚至是更大的管理災難。這樣做的唯一好處可能就是得到一個更快的代碼。
更明智的方法是,僅在需要多次使用代碼,並且對於您希望實現的任務沒有可用的內置PHP函數時才定義函數。您可以選擇重命名或僅當需要時才有限制地使用。
圖 1中的圖表粗略地顯示了可管理性和速度與使用的函數數量之間的相互關系。(在此我沒標明單位,因為數字取決於個體和團隊的能力;這一關系是重要的可視數據。)
圖 1. 可管理性/速度 Vs. 函數數量