码迷,mamicode.com
首页 > 其他好文 > 详细

魔术方法之__call与__callStatic方法

时间:2018-07-29 10:46:07      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:方法   new   权限   print   class   ati   自动   --   集合   

<?php
class human{
private function t(){
}


/**
     * 魔术方法__call
     *
     * @param string $method 获得方法名
     * @param string $arg 获得方法的参数集合
     */
    public function __call($method, $params){
        echo ‘你想调用我不存在的方法‘, $method, ‘方法‘;
        echo ‘还传了一个参数‘;
        print_r($params);
    }

    //魔术方法__callStatic
    public static function __callStatic($method, $params){
        echo ‘你想调用我不存在的‘, $method, ‘静态方法‘;
        echo ‘还传了一个参数‘;
        print_r($params),‘‘;
    }
}

$li=new human();
$li->say(1, 2, 3);

/*
__call是调用不可见(不存在或无权限)的方法时,自动调用
$li->say(1, 2, 3);
-----没有say()方法---->
 __call(‘say‘, array(1, 2, 3))运行
*/

human::cry(‘痛哭‘, ‘鬼哭‘, ‘号哭‘);

/*
__callStatic 是调用不可见的静态方法时,自动调用.
Human::cry(‘a‘, ‘b‘, ‘c‘);
----没有cry方法---> 
Human::__callStatic(‘cry‘, array(‘a‘, ‘b‘, ‘c‘));
*/

?>

  

魔术方法之__call与__callStatic方法

标签:方法   new   权限   print   class   ati   自动   --   集合   

原文地址:https://www.cnblogs.com/qq254980080/p/9384401.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!