1 面向過程&面向對象 |
一、專一於解決一個問題的過程。面向過程的最大特色,是由一個一個的函數去解決處理這個問題的一系列過程。
二、專一於由那個對象來處理一個問題。面向對象的最大特色,是有一個個具備屬性和功能的類,從類中拿到對象,進而處理問題。php
2 面向對象 |
一、什麼是類?
具備相同屬性(特徵)和方法(行爲)的一系列個體的集合,類是一個抽象的概念
二、什麼事對象?
從類中,拿到的具備具體屬性值的個體,稱爲對象。對象是一個具體的個體
三、類與對象的關係?
類是對象的抽象化!對象是類的具體化!
類僅僅代表這類對象有哪些屬性,可是不能具備具體的值,因此類是抽象的
而對象,是將類的全部屬性賦值後,產生的具體個體,全部對象是具體的函數
3 類的聲明與實例化 |
一、如何聲明一個類:
class 類名{
訪問修飾符 $屬性[=默認值];
[訪問修飾符 ]function 方法(){}
}
二、聲明一個類的注意事項:
①類名以內有數字字母下劃線組成,開頭不能使數字,必須符合大駝峯法則
②類名必須使用class修飾,類名後面必定不能有();
③屬性必需要帶訪問修飾符,方法能夠不帶訪問修飾符;
三、實例化對象及對象屬性方法的調用?
$對象名 = new 類名(); //()能夠不加
類外部調用屬性和方法
$對象名 -> 屬性名; //使用->調用屬性時,屬性名不能帶$
類內部調用屬性和方法
$this -> 屬性名;this
4 構造函數 |
一、什麼是構造函數?
構造函數是類中的一個特殊函數,當咱們使用new關鍵字實例化對象時,至關於調用了類的構造函數;
二、構造函數有什麼做用?
實例化對象時,自動調用,用於給對象的屬性賦初值!
三、構造函數的寫法?
①構造函數名,必須與類同名
[public ]function Person($name){
$this -> name = $name;
}
②使用魔術方法__construct
[public ]function __construct($name){
$this -> name = $name;
}
四、構造函數注意事項:
①第一種寫法,構造函數名必須與類同名!!!
②若是一個類沒有手寫構造函數,則系統默認會有一個空參數構造,所以可使用new Person();
若是咱們寫了帶參數的構造函數,則將不會再有空參構造,也就是不能直接使用new Person(); Person後面的()中的參數列表,必須符合
構造函數的要求!!
③若是兩種結構函數同時存在,將使用__construct。
五、析構函數:__destruct():
①析構函數在對象被銷燬釋放以前自動調用!
②析構函數不能帶有參數
③析構函數經常使用於對象使用完之後,釋放資源、關閉資源等
六、魔術方法:
PHP中,給咱們提供了一系列的__開頭的函數,這些函數無需本身手動調用,會在合適的時機自動調用,這類函數稱爲魔術函數。
例如:function __construct(){} 在類new一個對象時自動使用
function __destruct(){} 在對象被銷燬時自動調用
咱們要求除了魔術方法外,自定義的函數與方法不能使用__開頭
最後,通常對於功能比較複雜的類,咱們會單獨的寫到一個類的文件中。
類文件的命名,統一小寫,使用「類名(小寫).class.php」的方式命名。
在其餘文件中使用這個類 時,能夠用include導入這個.class.php文件。
spa