PHP常用魔術方法講解

預設不存在,但是如果使用者定義了相關的方法,則在相應的情況發生時會自動執行的方法,稱之為魔術方法。下面我們就給大家詳細介紹一下吧!

PHP常用魔術方法講解

 1,__constuct()建構函式

通常例項化完一個物件之後,都要對該物件的屬性進行初始化!在例項化一個物件的時候,PHP系統會自動的呼叫一個名字叫作__construct()的方法,我們把這個方法叫作“構造方法”!

其中,構造方法可以沒有引數!

stu_name = $name; $this->stu_age = $age; } }//例項化stu物件$stu = new Stu('孫悟空','500');

  2.__destruct()析構方法

與構造方法是一對,構造方法是在一個物件“出生”的時候由系統自動呼叫的,而析構方法是在一個物件“消失”的時候由系統自動呼叫的.!

析構方法的名字叫__destruct();注意裡面不能有任何的引數!

注意:析構方法是在物件銷燬之前呼叫的!

作用:

析構方法的作用一般是用來釋放該物件所佔用的額外的資源,而不是銷燬該物件本身!

 3,__clone()克隆

觸發時機:是在克隆一個物件的時候,對新物件進行初始化的工作

//克隆方法在克隆物件的時候對新物件的初始化工作 public function __clone(){ $this->is_clone=true;}

思考:

克隆出來的物件還是不是Student類中的一個例項呢?

我們可以利用instanceof運算子來進行判斷!

instanceof就是用來判斷某個物件是否是某個類的一個例項!

需要兩個運算元,前面是一個物件變數,後面是一個類名!返回一個布林值!

var_dump($stu instanceof Stu);

//返回bool(true)

  4.__autoload()自動載入類

當呼叫不存在的類的時候自動呼叫!

 5.__tostring()

當將物件當成字串使用的時候自動呼叫

  6.__invoke()

當將物件當成函式使用的時候自動呼叫

 7,__set()

當對無法訪問的屬性賦值時自動呼叫(比如:類外呼叫私有屬性)

  8.__get()

當對獲取無法訪問的屬性值的時候自動呼叫

  9.__unset()

當銷燬無法訪問的屬性的時候自動呼叫

  10.__isset()

當判斷無法訪問的屬性是否存在的時候自動呼叫

  11.__call()

當呼叫無法訪問的普通方法時自動觸發

echo "error"; }}$stu = new Stu();//此時Stu類裡沒有show()方法,會觸發__call()函式$stu->show();

  12.__callststic()

當無法通過靜態方法訪問時自動觸發