php 魔術方法 __call

大飛_dafei發表於2018-11-13

__call 魔術方法

//檔名字__call (自己隨便起名字)
/**
 * 在物件中呼叫一個不可訪問方法時,__call() 會被呼叫。
 *
 * 在靜態上下文中呼叫一個不可訪問方法時,__callStatic() 會被呼叫。
 *
 * $name 引數是要呼叫的方法名稱。$arguments 引數是一個列舉陣列,包含著要傳遞給方法 $name 的引數。
 *
 *  @link http://php.net/manual/zh/language.oop5.overloading.php#object.call
 */

class MethodTest
{
    public function __call($name, $arguments)
    {
        // TODO: Implement __call() method.
        echo $name ."<br>";
        print_r($arguments);
    }

    public static function __callStatic($name, $arguments)
    {
        // TODO: Implement __callStatic() method.
        echo $name."<br>";
        print_r($arguments);
    }
}
echo "<pre>";
$obj = new MethodTest ;
$obj->我自己的方法(['in object context','hello world']);

MethodTest::runTest("in static context");

相關文章