程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP的魔術方法

PHP的魔術方法

編輯:關於PHP編程

PHP的魔術方法


1、__get/__set:對對象屬性的接管
2、__call/__callStatic:控制php對象方法的使用
3、__toString:將php對象轉換成字符串
4、__invoke:將一個php對象當成函數來執行時來回調這個方法

class Object
{
 protected $array = array();

    function __set($key,$value)
    {
        var_dump(__METHOD__);
        $this->array[$key] = $value;
    }
    function __get($key)
    {
        var_dump(__METHOD__);
        return $this->array[$key];
    }

    function __call($func,$param)
    {
        var_dump($func,$param);
        return magic mathod __call;
    }

    static function __callStatic($func,$param)
    {
        var_dump($func,$param);
        return magic mathod __callStatic;
    }

    function __toString()
    {
        return __toString;
    }

    function __invoke($param)
    {
        var_dump($param);
        return invoke;
    }
}

$Obj = new Object();

$Obj->title = “你好”;//當對一個對象不存在的屬性賦值的時候,它就會自動調用__set方法

echo $Obj->title;//對去讀取一個對象不存在的屬性的時候,它就會自動調用__get方法

echo $Obj->test(“hello”,”123”); //當調用一個對象不存在的方法時,就會自動調用__call方法

echo $Obj::test1(“hello1”,”1234”); //當調用一個對象不存在的靜態方法時,就會自動調用__callStatic方法

echo $Obj;//當直接輸出一個對象時(因為對象不能直接輸出),就會自動調用__toString方法把對象轉換成字符串

echo $Obj(“hello”);//當將一個對象當成一個函數來使用的時候,就會自動調用__invoke方法

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved