Yousyou

Yousyou

做好自己做好事
twitter

PHP魔術方法

php 存在很多的魔術方法,這些方法在我們觸發時會自動調用。這些方便可以大大提升我們的編程便捷性。

__construct ():當創建一個新的對象時自動調用此方法,用於初始化對象的成員變量。這可能是 php 中最常用的魔術方法了,因為基本每一個對象都需要初始化一些數據。

__destruct ():在對象被銷毀前自動調用此方法,用於清理資源,比如自動斷開數據庫連接之類。

__invoke ():在將對象當做函數調用時,自動調用該方法。主要用於編寫直接調用類,閉包函數默認實現了__invoke ()。

class Test{
  public $name;
  function __construct($name){
    $this->name = $name;
  }

  function __invoke(){
    return 'Hello '.$this->name;
  }
}

$closure = function($name){
  return 'Hello '.$name;
};

$test = new Test('Lisi');
echo $test();//Hello Lisi
echo $closure('Lisi'); //Hello Lisi
echo $closure->__invoke('Zhangsan'); //Hello Zhangsan

__get ():在訪問一個不存在的或者私有的屬性時自動調用此方法。

__set ():在設置一個不存在的或者私有的屬性時自動調用此方法。

__call ():在調用一個不存在的或者私有的方法時自動調用此方法。

__callStatic ():在調用一個不存在的或者私有的靜態方法時自動調用此方法。

__toString ():在嘗試將對象轉換為字符串時自動調用此方法。

__clone ():當複製一個對象時自動調用此方法,用於複製對象的成員變量。

__sleep ():在序列化對象時自動調用此方法,用於返回實例中包含的所有值的名稱數組。

__wakeup ():在反序列化對象時自動調用此方法,用於重新讀取所有值。

__isset ():在判斷一個不存在的或者私有的屬性是否被設置時自動調用此方法。

__unset ():在刪除一個不存在的或者私有的屬性時自動調用此方法。

__set_state ():在使用 var_export () 函數導出一個類或對象時自動調用此方法。

__debugInfo ():在調用 var_dump () 函數時自動調用此方法,用於返回對象的調試信息。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。