PHP從入門到精通
之PHP的面相物件程式設計
物件導向程式設計(Object Oriented Programming, OOP, 物件導向程式設計)是一種電腦程式設計架構, OOP的一條基本原則是電腦程式是由單個能夠起到副程式作用的單元或物件組合而成。 為了實現整體運算, 每個物件都能夠接收資訊、處理資料和向其它物件發送資訊。 物件導向一直是軟體發展領域內比較熱門的話 題, 為程式設計人員敞開了一扇大門, 使其程式設計的代碼 更簡潔、更易於維護, 並且具有更強的再使用性。 有人說PHP不是一個真正的物件導向的語言, 這是事實。 PHP 是一個混合型語言,
首先我們來瞭解一些物件導向程式設計的基礎知識:
面向過程和物件導向
1、面向過程:專注於解決一個問題的過程。 面向過程的最大特點, 是由一個個的函數去解決處理這個問題的一系列過程;
2、物件導向:專注於由哪個物件來處理一個問題。 物件導向的最大特點, 是由一個個具有屬性和方法的功能的類, 從類中拿物件, 進而處理問題;
物件導向:
1、什麼是類?
具有相同屬性(特徵)和方法(行為)的一系列個體的集合。 類是一個抽象的概念。
2、什麼是物件?
從類中拿到的具有具體屬性的個體,
3、類和物件的關係?
類是物件的抽象化, 物件是類的具體化。
類僅僅表明這類物件有哪些屬性。 但是不能有具體的值, 所以類是抽象的。
而物件, 是將類所有屬性賦值後, 產生具體的個體, 所以物件是具體的。
類的聲明與產生實體
1、如何聲明一個類?
class 類名{
訪問修飾符 $屬性;
[訪問修飾符] function 方法{};
}
2、聲明一個類的注意事項?
①類名只能有字母數位底線組成, 開頭不能是數字, 必須符合大駝峰法則;
②類名必須使用class修飾, 類名後面一定不能有;
③屬性必須帶訪問修飾符;方法可以不帶訪問修飾符;
3、產生實體物件及物件屬性方法的調用:
$對象名=new 類名;//可帶可不帶;
類外部調用屬性和方法:
$物件名->屬性名;//使用->調用屬性時,
類內部調用屬性和方法:
$this->屬性名;
聲明類的代碼示例:
class Person{ var $name; function Person($name){ $this->name=$name; } }類中常見的修飾符
常見的訪問修飾符有:public、protected、private、var等。
用法如下:
class Person{ public $name; public function Person($name){ $this->name=$name; } }構造函數
1、什麼是構造函數?
構造函數是類中的一個特殊函數, 當我們使用new關鍵字產生實體物件時, 相當於調用了類的構造函數;
2、構造函數有什麼作用?
產生實體物件時, 自動調用, 用於給物件的屬性賦初值;
3、構造函數的寫法?
①構造函數名必須與類同名:
[public]function Person{
$this->name=$name
}
②使用魔術方法
4、構造函數注意事項?
①第一種寫法, 構造函數名, 必須與類同名!!!
②如果一個類沒有手寫構造函數, 則系統預設會有一個空參構造, 因此可以使用new Person;
如果我們寫進了帶參數的構造函數, 則將不再有空參構造, 也就是不能直接使用new Person;
Person後面的中的參數清單, 必須符合構造函數的要求!!(即為形參實參問題);
③如果兩種構造函數同時存在, 將使用魔術方法__construct。
5、析構函數:__destruct:
①析構函數在物件被銷毀釋放之前自動調用;
②析構函數不能帶有任何參數;
③析構函數常用於物件使用完以後, 釋放資源, 關閉資源等;
6、什麼是魔術方法?
PHP中給我們提供了一系列__開頭的函數, 這些函數無需手動調用, 會在合適的時機自動調用, 這類函數稱為魔術函數(方法);
例如:
function __construct{}// 在類new一個物件時自動調用; function __destruct{}// 在物件被銷毀時時自動調用;因此, 為避免重複, 我們要求, 除了魔術方法之外, 自訂函數與方法不能__開頭;
最後, 一般對於功能比較複雜的類, 我們會單獨的寫到一個類檔中。
類檔的命名,
在其他檔中使用這個類時, 使用include導入這個.class.php文件。
代碼如下:
name=$name; }*/ //魔術方法(此為官方推薦用法) function __construct($name){ $this->name=$name; } public function say{ echo "我叫".$this->name."!"; } function __destruct{ echo "Ah! 張三 is die!"; } } include "person.class.php"; $zhangsan=new Person("zhangsan"); $zhangsan->say;
關於PHP物件導向程式設計的基礎知識就就到這裡, 想學習更多的PHPOOP知識, 歡迎關注我的技術博客, 我們下期再見。 覺得內容不錯的小夥伴請點推薦, 歡迎大家在評論下方評論區與博主互動, 謝謝大家!
未完, 待續。 。 。
更多精彩內容, 敬請關注 Q的前端世界的技術博客, 內容持續更新。