__call 当要调用的方法不存在或权限不足时,会自动调用__call 方法。
__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。
__call($funcname, $arguments)
__callStatic($funcname, $arguments)
参数说明:
$funcname String 调用的方法名称。
$arguments Array 调用方法时所带的参数。
__call 例子
?phphtml' target='_blank'>class Member{ protected $memberdata = array(); public function __call($func, $arguments){ list($type, $name) = explode( _ , $func); if(!in_array($type, array( set , get )) || $name== ){ return switch($type){ case set : $this- memberdata[$name] = $arguments[0]; break; case get : return isset($this- memberdata[$name])? $this- memberdata[$name] : break; default:class User extends Member{ public function show(){ if($this- memberdata){ foreach($this- memberdata as $key= $member){ echo $key. : .$member. br class Profession extends Member{ public function show(){ if($this- memberdata){ foreach($this- memberdata as $key= $member){ echo $key. : .$member. br $userobj = new User();$userobj- set_name( fdipzone $userobj- set_age(29);$userobj- show();$probj = new Profession();$probj- set_profession( IT SERVICE $probj- set_price(2500);$probj- show();?
__callStatic例子
?phpclass Member{ protected static $memberdata = array(); public static function __callStatic($func, $arguments){ list($type, $name) = explode( _ , $func); if(!in_array($type, array( set , get )) || $name== ){ return $feature = get_called_class(); switch($type){ case set : self::$memberdata[$feature][$name] = $arguments[0]; break; case get : return isset(self::$memberdata[$feature][$name])? self::$memberdata[$feature][$name] : break; default:class User extends Member{ public static function show(){ $feature = get_called_class(); if(self::$memberdata[$feature]){ foreach(self::$memberdata[$feature] as $key= $member){ echo $key. : .$member. br class Profession extends Member{ public static function show(){ $feature = get_called_class(); if(self::$memberdata[$feature]){ foreach(self::$memberdata[$feature] as $key= $member){ echo $key. : .$member. br User::set_name( fdipzone User::set_age(29);User::show();Profession::set_profession( IT SERVICE Profession::set_price(2500);Profession::show();?
本文讲解了关于php __call 与 __callStatic 的内容,更多相关知识请关注php 。
相关推荐:
关于memcached 常用命令及使用说明
关于PHPMailer - PHP email transport class 的相关讲解
关于PHP 遍历文件夹及文件类及处理类 的理解
以上就是关于php __call 与 __callStatic 的内容讲解的详细内容,PHP教程
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
新闻热点
疑难解答