php中 __call 与 __callStatic用法与区别详解

伊谢尔伦
发布: 2023-03-12 13:48:01
原创
2238 人浏览过

php 5.3 后新增了callcallStatic魔法方法。

call当要调用的方法不存在或权限不足时,会自动调用call 方法。

callStatic当调用的静态方法不存在或权限不足时,会自动调用callStatic方法。

call($funcname, $arguments) callStatic($funcname, $arguments)
登录后复制

参数说明:

$funcnameString调用的方法名称。

$argumentsArray 调用方法时所带的参数。

call 例子

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.'
'; } } } } class Profession extends Member{ public function show(){ if($this->memberdata){ foreach($this->memberdata as $key=>$member){ echo $key.':'.$member.'
'; } } } } $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例子

$member){ echo $key.':'.$member.'
'; } } } } 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.'
'; } } } } 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中文网其他相关文章!

相关标签:
php
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!