php的魔法方法__call使用

来源:互联网 发布:进销存软件 推荐 知乎 编辑:程序博客网 时间:2024/04/29 09:25
<?phpclass Car{    public function __call($method,$args)    {        print "method $method called\n";        var_dump($args);    }    /* 新版本php提供    public static function __callStatic($method,$args)    {        print "static method $method called\n";        var_dump($args);    }    */}$car = new Car();$car->run();// method run called array(0) { }$a = 100;$car->run($a);// method run called array(1) { [0]=> int(100) }$a = array(    "a",    "b" => array(        1,2,3    ),    "c");$car->run($a);// method run called array(1) { [0]=> array(3) // { [0]=> string(1) "a" ["b"]=> array(3) { // [0]=> int(1) [1]=> int(2) [2]=> int(3) }// [1]=> string(1) "c" } } $car = new Car();$car->run("hello","world");// method run called array(2) { [0]=> string(5) "hello" [1]=> string(5) "world" } /*$car::alarm();*/?>
可以看出调用不存在的方法时,不会抛错“call method undefined”,而是进入到我们定义的__call魔法函数,第一个参数$method为出错的函数名,$args为传递给这个函数的参数。
原创粉丝点击