开启辅助访问
帐号登录 |立即注册

PHP魔术方法之__call与__callStatic使用方法

 
魔术方法__call
__call是魔术方法中的一个,当程序调用到当前类中未声明或没权限调用的方法时,就会调用__call方法。__call()方法包含两个参数,即方法名和方法参数。其中,方法参数是以数组形式存在的。
通过__call( )方法处理错误调用
当试图调用一个对象中不存在的方法时,就会产生错误。PHP提供了“__call()”这个方法来处理这种情况。即当调用一个不可访问方法(如未定义,或者不可见)时,__call()会被调用。
格式:
mixed __call( string $name , array $arguments )
说明:
第一个参数$name表示方法名,
第二参数$arguments表示调用时的参数列表(数组类型)

class Human {
private function t(){
  }
public function __call($method,$arg){
  echo '你想调用我不存在的方法',$method,'方法<br/>';
  echo '还传了一个参数<br/>';
  echo print_r($arg),'<br/>';
}
public static function __callStatic($method,$arg){
  echo '你想调用我不存在的',$method,'静态方法<br/>';
  echo '还传了一个参数<br/>';
  echo print_r($arg),'<br/>';
}
}
$ha = new Human();
//example1
$ha->t(1,2,3);
echo '<br>';
//example2
$ha->say('a','b','c');
echo '<br>';
//example3
$ha::run('d','e','f');
你想调用我不存在的方法t方法
还传了一个参数
Array ( [0] => 1 [1] => 2 [2] => 3 )

你想调用我不存在的方法say方法
还传了一个参数

Array ( [0] => a [1] => b [2] => c )

你想调用我不存在的run静态方法
还传了一个参数
Array ( [0] => d [1] => e [2] => f )

回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

友情链接
  • 艾Q网

    提供设计文章,教程和分享聚合信息与导航工具,最新音乐,动漫,游戏资讯的网站。