【咸鱼PHP】魔术方法__call、__callStatic

  • 自php5.3以后魔术方法中就多出了两个新成员__call、__callStatic

    • 说明

      • __call:在对象中调用一个不可访问方法时,__call() 会被调用。
      • 在静态上下文中调用一个不可访问方法时,__callStatic() 会被调用。
  • 举例:

    
    class overwrite
    {
        public function __call($method, $arguments)
        {
            var_dump($name . '---call');
            var_dump($arguments);
        }
    
        public static function __callStatic($method, $arguments)
        {
            var_dump($name . '--callstatic');
            var_dump($arguments);
        }
    }
    
    $now = new overwrite();
    $now->suprise();
    overwrite::make();
    
    输出:
        string(19) "suprise---call"     array(1) { [0]=> string(3) "111" }        
        string(21) "make--callstatic" array(1) { [0]=> string(3) "222" }
  • 从上述例子中,可以清楚明白的看出来了ಠ_ರೃ,当调用不存在的方法、静态方法时,会调用__call、__callStatic

打印其中参数会输出方法和参数,参数以数组的形式显示

你可能感兴趣的:(php,魔术方法)