1. 程式人生 > >PHP(一)OOP基礎

PHP(一)OOP基礎

pre 實現 傳參 最大的 tro 定義 nbsp 其他 自定義

【面向過程&面向對象】
1.面向過程:專註於解決一件事情的過程。最大的特點,是有一個個函數來實現功能需求
2.面向對象:專註於有哪一個對象來實現這個功能,最大的特點,時產生一個個具有屬性和方法的類,從類中new出對象,實現具體功能
【面向對象】
1.什麽是類?
具有一系列屬性(特征)和方法(行為)的集合。類是一個抽象的概念
2.什麽是對象?
從類中拿到具有具體屬性值的個體,稱為對象,對象是一個具體的實例
3.類與對象的關系
類是對象的抽象化,對象是類的具體化。
類是抽象的:類只能表明 這一類事物具有那些屬性,但是不能對屬性進行賦值,所以類是抽象的
對象是具體的:對象的產生,是將類中的各個屬性進行具體的賦值,所拿到的個體,所以對象都是具體的
【類的聲明與實例化】


1.如何聲明一個類

class 類名{
        訪問修飾符 $屬性值=[=$屬性值];
        [訪問修飾符] function 方法名(){}
}

2.聲明一個類的註意事項:
①、類名只能有字母、數字、下劃線組成,開頭不能是數字,必須符合大駝峰法則
②、類名必須使用class修飾,類名後面不帶()
③、屬性名必須要使用訪問修飾符,方法名可以不用訪問修飾符
3.實例化對象以及屬性方法的調用
$對象名 = new 類名 (); //()可以省略,但是一般不省
類外部調用的屬性和方法
$對象名->屬性名; //調用屬性,屬性名一定不能帶$
$對象名->方法名;
【構造函數】


1.什麽是構造函數
構造函數是類中的一個特殊函數,與類同名,當使用new關鍵字實例化對象時,相當於調用類中的構造函數,構造函數不需要手動調用
2.構造函數有什麽作用
構造函數用於實例化對象時,自動調用並給類中的屬性賦初始化值
3.構造函數的寫法
①、與類同名

[public] function Person($name){
        $this->name = $name;
}

②使用魔術方法 _construct ,不要求與類同名

[public] function _construct($name){
         $this->name = $name;
}

4.構造函數的註意事項:
①、第一種寫法,必須與類同名,大小寫要完全一致
②、兩種構造方法寫一種即可,同時存在時 _construct生效,但是會產生嚴格警告
③、如果沒有手動寫構造函數,PHP會默認創建一個空參構造,因此,可以使用new Person()這種不傳參的形式
如果手動寫好構造函數,PHP講不會默認創建空參構造,因此,實例化時的參數必須符合構造函數的要求
5.析構函數 _destruct
①、析構函數在對象被銷毀之前,自動調用
②、析構函數不能有任何的參數
③、析構函數常用與對象使用完以後,釋放資源、關閉資源
6.PHP中的魔術方法
PHP中給我們提供了一系列用 __開頭的函數,這些函數無需用戶手動調用,而是在合適的時機自動調用,這類方法稱為魔術方法
例如:構造函數在類實例化時調用: 析構函數在對象銷毀之前調用:
我們要求!!!自定義的函數一定不能用__開頭

最後,對於一些功能復雜,代碼量大而且需要頻繁使用的類,我們通常會將其寫到以單獨的類文件中
類文件的命名,統一小寫,使用"類名小寫.class.php"的方式命名
在其他文件中,如果需要使用,可以使用include導入.class.php

PHP(一)OOP基礎