比如我要寫一個使用者驗證(CheckUser),我可以寫在Common的function.php中,也可以寫在Model裡的CheckUserModel.class.php裡。他們有什麼差別?
function.php裡面是放一些功能函數, 一般我們會在随便什麼地方就使用 xyz($param) 這樣的方式調用;
而Model中, 則是與我們的事務處理有關的, 一般來說和我們處理的對象或者流程緊密相關, 而且Class中定義的函數和變量自身也高端相關, 針對性更強.
就你說的使用者驗證為例, checkUser函數不是簡單一個功能, 他需要讀取資料庫(調用Model), 可能還有一些我們一般都會用到的相關的函數(比如getUser, getUserGroup等), 各函數還會有公用的變量和一些定義(比如執行個體化的時候公用的構造函數, 還有比如UID等變量可能也需要共用), 是以, 了解成一個簡單的功能(function肯定是不合适的), 是以還是建議放在Model裡面.
函數和方法的差別
函數,你可以當做一個算法的實作。函數是單獨存在的,也就是面向過程部分定義的。
方法,則可以當做一個業務邏輯的實作。方法是依賴于類存在的,也就是面向對象中定義的。