大飞_dafei

导航

php 魔术方法 __call

__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");

 

 

posted on 2018-11-13 15:07  大飞_dafei  阅读(106)  评论(0编辑  收藏  举报