zoukankan      html  css  js  c++  java
  • 魔术方法之__call与__callStatic方法

    <?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'));
    */
    
    ?>

      

  • 相关阅读:
    EJB3.0
    EJB
    到底EJB是什么
    EJB到底是什么,真的那么神秘吗??
    ssh和ejb的区别
    struts2的一些小问题
    Struts2中ValueStack结构和总结
    Java 监听器
    浅谈cookie 和session 的区别
    理解Cookie和Session机制
  • 原文地址:https://www.cnblogs.com/qq254980080/p/9384401.html
Copyright © 2011-2022 走看看