PHP中的類
來源:互聯網
上載者:User
PHP中的類
作者:酷熊
我覺得自從使用PHP以來最難以理解的概念就是PHP的類。我除了正在學習MySQL一些基本知識以外,對於其他的資料庫引擎沒有經驗。此前對於OOP物件導向編程我也沒有經驗,OOP對於我來說也是個新鮮事物,但是通過對其原理以及為何如此強大的理解,使我有了一定的我瞭解如果任何程式都用OOP來實現的話,無疑會得到一個強大的程式;但是對我而言,如果我只是認為自己瞭解了其中的機制,而不把這種理解應用到編程實踐,OOP對我來說將始終停留在紙上談兵的層次上。於是,幾天前,在利用常規的函數來實現一些功能時,我嘗試採用對象來實現,我發現的確這讓我的工作更加簡單了!於是我將這些經驗寫出來,希望能夠協助象我一樣的人們。
類說穿了就是一些變數(OOP概念中的成員變數,譯者注)和一些操作處理這些變數的函數(OOP概念中的成員函數)的集合。它提供了一種在程式中以現實生活的形態來思考問題的方法,換句話說,就是描述了一個對象。反之,一個對象或者執行個體,就是這個類的真正實現。比如說我們要描述一輛單車:一個合適的單車類應該含有如下變數:$pedals(腳蹬),$chain(鏈條),$front wheel(前輪),$rear wheel(後輪),$brakes(刹車), and $handl_bars(車把)。你可以參考現實生活中對一輛單車的操作來實現你的指令碼。比如可以通過向函數Accelerate()傳遞一個$Braking_Force,並將這個變數應用於你所定義的執行個體的其他變數如$front_wheel, $rear_wheel,也可以返回操作的結果,從而實現相應的操作。
看起來很美,但是這些通過常規的函數和變數不是也能夠實現嗎?不錯,如果你的程式中只有一個單車的執行個體,為它單獨定義一個類的確意思不大,但是如果你需要很多單車執行個體的時候呢?但是你程式中的變數傳遞流會變得相當複雜,你得時時保證每個單車執行個體指定的變數都正確的傳遞給了不同的函數。但是使用對象大大降低了你所傳遞的變數的數量,因為對象中的處理函數(所謂的方法method,譯者著。)自動的認定作用範圍就限制在本對象之內,那麼它所能夠操作的對象也就限制在了物件範圍內。而且對象的定義可以非常容易的包含到不同的指令碼只用,(在得到可重用性的同時)還從而保證了每一個單車的在不同的指令碼中工作方式都是一致的。
讓我們來建立一個實際的類,這個類我幾乎用在了我網站的每一個頁面中,也許你會從中發現值得參考的東西。