php 通过__callstatic访问不存在的静态方法,并映射到真正的方法上

来源:互联网 发布:java中sleep函数 编辑:程序博客网 时间:2024/05/29 23:25
<?php//调用不存在的静态方法name,映射到真正的output方法echo A::name('巴拉巴拉');class A{    //$name为伪方法的静态方法名,$args为传递的参数    public static function __callStatic($name,$args)    {        // $funArr数组存放伪方法与真实非非静态方法之间的映射关系        $funArr=['name'=>'output', 'email'=>'email'];        if(array_key_exists($name,$funArr)){            //把真实方法名赋给$method            $method=$funArr[$name];            //返回真实方法处理结果            return (new who())->$method($args[0]);        }else{            return  "unknown function name".$name;        }    }        public function output($name)    {        return  'your name is '.$name;   }}
1 0