做爲一個php開發者,咱們都基本都習慣php相似C語言的面向過程的編程模式。以致於好多人都覺得php只能面向過程編程,今天我就來談談我近期學習php的嗎,面向對象編程的一些總結和重要知識。php
面向對象的特性:封裝,繼承,多態。數據庫
封裝:將屬性(數據)和方法(函數)打包成一個總體這個總體就叫類。編程
繼承:將相同的類定義爲一個通用類,而後其餘想擁有該屬性和方法的類去繼承通用類的這些屬性和方法,通用類叫父類繼承的類叫子類。函數
多態:同一個方法在不一樣的類中實現不一樣的功能,這叫多態。學習
通俗的解釋下上面三個概念:this
封裝:咱們假設要煮碗泡麪,去買了桶泡麪你會發現買來的那桶泡麪中有調料有面有桶有叉子,咱們只要將熱水倒進去而後撒上各類調料蓋上蓋子捂上幾分鐘就能夠食用 了。其中泡麪中的調料,面,調料,叉子都是他自帶的東西也就是屬性,咱們加上熱水而後捂上幾分鐘這是咱們本身選擇的泡麪方法,有的人還會在泡麪時加上香腸 雞蛋什麼的,這個就想方法中的參數同樣由你本身去加。最後經過這些一系列操做咱們完成了泡麪這個事。spa
繼承:這個顧名思義就是至關於父親去世他的遺產被兒女繼承,女兒就擁有父親生前的財產和物品。code
多態:咱們在上學的時候每一個班都有學號和班內序號,咱們能夠經過學號找到同窗。可是要經過班內序號找到同窗的話就必需要有對應的專業班級。對象
接下來咱們看看怎麼定義一個類:blog
class ClassName{} 其中class爲關鍵字,類的定義在class後面跟上類名加上{};
class ClassName{ public function __construct($name){ echo "我是構造方法".$name; } public function show($show){ echo "我是一個方法".$show; } public function __destruct(){ echo "我是析構方法"; } }
__construct()在PHP中這個叫作構造方法。它是在類被實例化後自動執行的一個方法(通常能夠作數據庫的鏈接等操做),能夠有參數不能有返回值。
__destruct() 在PHP中這個叫作析構方法。它是在對象被銷燬或者程序執行完後自動執行的一個方法,能夠不能有參數。
繼承一個類: class Name extends ClassName{} 繼承的關鍵字爲extends,Name是子類,ClassName是父類。
class Name extends ClassName{ //繼承一個類 }
類被定義好以後咱們就可使用它來完成咱們的程序功能了,也就是類的實例化:關鍵字是new 類名 若是類中的構造函數有參數的話就能夠加。
$obj = new ClassName('llh'); //實例化一個類
調用類中的方法:其實在實例化的時候已經自動調用了構造方法。
$obj = new ClassName('llh'); $obj->show('ym'); //調用show方法
使用類中的屬性:使用$this->屬性名(前提是屬性的權限夠)。屬性名前不加$。
class ClassName{ public $a; public function __construct($name){ $this->a=$name; echo $this->a; } }
這就是我這段時間總結的PHP面向對象編程的基礎知識,關於訪問權限,重寫,靜態屬性和方法的訪問以及接口的問題咱們在進階篇再講。因爲筆者能力有限,在文中不免出現錯誤,但願廣大讀者多多交流斧正。