標籤:賦值 沒有 amp 問題 相同屬性 資源 函數名 關係 php物件導向
[面向過程&物件導向]
* 1、專註於解決一個問題的過程。面向過程的最大特點,是由一個一個的函數去解決處理這個問題的一系列過程。
* 2、專註於由哪個對象來處理一個問題。物件導向的最大特點,是有一個個具有屬性和功能的類,從類中拿到對象,進而處理問題。
*
* 【物件導向】
* 1、什麼是類?
* 具有相同屬性(特徵)和方法(行為)的一系列個體的集合,類是一個抽象的概念
* 2、什麼是對象?
* 從類中,拿到的具有具體屬性值的個體,稱為對象。對象是一個具體的個體
*
* 人類,都有姓名、性別、年齡,但是這些屬性都不能有具體的值。
* 張三,是人類中的一個對象!姓名張三、性別男、年齡23,將類的每一個屬性具體賦值後,就成了張三這個對象。
*
* 3、類和對象的關係?
* 類是對象的抽象化!對象是類的具體化!
* 類僅僅表明這類對象有哪些屬性,但是不能有具體的值,所以類是抽象的。
* 而對象,是將類的所有屬性賦值後,產生的具體的個體,所有對象是具體的。
*
* 【類的聲明與執行個體化】
* 1、如何聲明一個類:
* class 類名{
* 存取修飾詞 $屬性[=預設值];
* [存取修飾詞] function 方法(){}
* }
*
* 2、聲明一個類的注意事項:
* ① 類名只能有字母數字底線組成、開頭不能是數字,必須符合大駝峰法則;
* ② 類名必須使用class修飾,類名後面一定不能有();
* ③ 屬性必須要帶存取修飾詞,方法可以不帶存取修飾詞;
*
* 3、執行個體化對象及對象屬性方法的調用?
* $對象名 = new 類名(); //()可以不帶
*
* 類外部調用屬性和方法:
* $對象名 -> 屬性名稱; // 使用->調用屬性時,屬性名稱不能帶$
*
* 類內部調用屬性和方法:
* $this -> 屬性名稱;
*
* 【建構函式】
* 1、什麼是建構函式?
* 建構函式是類中的一個特殊函數,當我們使用new關鍵字執行個體化對象時,相當於調用了類的建構函式;
*
* 2、建構函式有什麼作用?
* 執行個體化對象時,自動調用,用於給對象的屬性賦初值!
*
* 3、建構函式的寫法?
* ① 建構函式名,必須與類同名
* [public] function Person($name){
* $this -> name = $name;
* }
* ② 使用魔術方法__construct
* [public] function __construct($name=""){
* $this -> name = $name;
* }
*
*
* 4、建構函式注意事項:
* ① 第一種寫法,建構函式名必須與類同名!!!!!!
* ② 如果一個類沒有手寫建構函式,則系統預設會有一個空參構造,因此可以使用new Person();
* 如果我們寫了帶參數的建構函式,則將不會再有空參構造,也就是不能直接使用new Person(); Person後面的()中的參數列表,必須符合建構函式的要求!!!
* ③ 如果兩種建構函式同時存在,將使用__construct。
*
*
* 5、解構函式:__destruct():
* ① 解構函式在對象被銷毀釋放之前自動調用!
* ② 解構函式不能帶有任何的參數
* ③ 解構函式常用於對象使用完以後,釋放資源、關閉資源等!
*
*
* 6、魔術方法:
* PHP中,給我們提供一系列用__開頭的函數,這些函數無需自己手動調用,會在合適的時機自動調用,這類函數稱為魔術函數。
* 例如:function __construct(){} 在類new一個對象時自動調用
* function __destruct(){} 在對象被銷毀時自動調用
*
* 我們要求,除了魔術方法之外,自訂的函數與方法不能使用__開頭。
*
*
* 最後,一般對於功能比較複雜的類,我們會單獨的寫到一個類檔案中。
* 類檔案的命名,統一小寫,使用“類名小寫.class.php”的方式命名。
* 在其他檔案中使用這個類時,可以用include匯入這個.class.php檔案。
PHP物件導向——1、基礎