魔术方法之__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')); */ ?>