<?php class aaa{ private function t(){ } //魔术方法__call /* $method 获得方法名 $arg 获得方法的参数集合 */ public function __call($method,$arg){ echo '不存在的方法',$method,'方法<br/>'; echo '不存在方法中有参数传入<br/>'; echo print_r($arg),'<br/>'; } //魔术方法__callStatic public static function __callStatic($method,$arg){ echo '不存在的',$method,'静态方法<br/>'; echo '还传了一个参数<br/>'; echo print_r($arg),'<br/>'; } } $a=new aaa(); $a->xx(1,2,3); /* 调用一个未定义的方法 Fatal error: Call to undefined method aaa::xx() in D:\wamp\www\php\aaa.php on line 8 */ $li->t('a','b'); /* __call是调用不可见(不存在或无权限)的方法时,自动调用 $a->xx(1,2,3);-----没有xx()方法----> __call('xx',array(1,2,3))运行 */ aaa::yy('a','b','c'); /* __callStatic 是调用不可见的静态方法时,自动调用. aaa::yy('a','b','c')----没有yy方法---> aaa::__callStatic('yy',array('a','b','c')); */ ?>
저작권 안내: 이 글은 해당 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.
이상에서는 PHP 매직 메소드의 __call 및 __callStatic 메소드를 관련 내용을 포함하여 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.