php面向對象

   一、 靜態static關鍵字

1、靜態屬性用於保存類的公有數據

2、靜態方法中只能訪問靜態屬性

3、靜態成員不需要通過實例化來訪問。

4、類的內部可以通過self或者static關鍵字訪問自身靜態變量。訪問變量的時候需要在變量名前加美元符號。

5、可以通過parent關鍵字訪問父類的靜態成員。

6、可以通過類的名稱在類定義外部訪問靜態成員。

   二、對象引用的基本概念

class A{};

$B=new A();

$C=$B;

此時變量$C引用的是一個A對象,  當變量$B被賦值爲null的時候,$C並不會爲null。

$C=&$B 

此時當變量$B被賦值爲null的時候,$C會爲null。

對象的析構函數__destruct當且僅在沒有變量繼續引用的時候,就會調用。析構函數和

構造函數不能顯示調用。

       三、數據訪問

parent關鍵字可以用於調用父類中被子類重寫了的方法.

self關鍵字可以用於訪問類自身的成員方法,也可用於訪問自身的靜態成員和類常量。

不能用於訪問類自身的屬性。使用常量的時候不需要在常量名稱前加上$符號。

static關鍵字用於訪問類自身定義的靜態成員,防僞靜態屬性需要在屬性前添加$符號。

四、魔術方法

__tostring()方法  對象被當做String使用時,這個方法被自動調用。

class A(){}:

在類中定義了__tostring()方法的時候,直接聲明$obj=new A(); echo $obj會自動調用__tostring()方法.

__invoke()方法   當類被當做方法調用的時候,這個方法會被自動調用

class A(){}:

在類中定義了__invoke()方法的時候,直接聲明$obj=new A(); echo $obj()會自動調用__invoke()方法.

__call() 當訪問類中不存在的方法的時候,這個方法會被自動調用

參數列表 __call($name,$parameters)

__callStatic()當訪問類中不存在的靜態方法的時候,這個方法會被自動調用。

參數列表 __callStatic($name,$parameters)

必須被聲明爲static

__get()方法當訪問類中不存在的屬性的時候,

會自動調用這個方法。

函數的參數__get($name)

__set()方法當給類中不存在的屬性賦值的時候,會自動調用這個方法。

__set()函數參數($name,$value);

__isset()方法當用isset()或者empty()判斷屬性存不存在的時候,

傳入的屬性並不存在的時候,該方法將會自動調用。

__unset()方法當用unset()傳入一個不存在的屬性的時候,會自動調用、

__clone()方法,

當使用clone方法的時候,如果沒有聲明__clone方法,

使用$obj2=clone $obj1;能夠完全拷貝obj1的內容,並且更改

$obj2的屬性不會影響到$obj對應的屬性。

__clone可在這個時候,控制clone過程中,希望不被複制的內容。

 

 

 

 

 

 

發佈了40 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章