PHP 中__call()的使用方法

墨辰丷
发布: 2023-03-25 18:14:02
原创
27150 人浏览过

PHP5 的对象新增了一个专用方法 __call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在或被权限控制中的方法,__call 方法将会被自动调用。

1.__call的使用

doStuff(); $x->fancy_stuff(); ?>
登录后复制

2.使用 __call 实现“过载”动作

foo_for_int($arguments[0]); if(is_string($arguments[0])) $this->foo_for_string($arguments[0]); } } private function foo_for_int($x) { print("oh an int!"); } private function foo_for_string($x) { print("oh a string!"); } } $x = new Magic(); $x->foo(3); $x->foo("3"); ?>
登录后复制

3._call和___callStatic这两个函数是php类 的默认函数,

__call() 在一个对象的上下文中,如果调用的方法不能访问,它将被触发

__callStatic() 在一个静态的上下文中,如果调用的方法不能访问,它将被触发

property[$array[1]] = $value[0]; return; } elseif(preg_match("/^get([a-z][a-z0-9]+)$/i",$name,$array)) { return $this->property[$array[1]]; } else { exit("
;Bad function name '$name' "); } } } class User extends Obj { public function show() { print ("Username: ".$this->property['Username']."
;"); //print ("Username: ".$this->getUsername()."
;"); print ("Sex: ".$this->property['Sex']."
;"); print ("Age: ".$this->property['Age']."
;"); } } class Car extends Obj { public function show() { print ("Model: ".$this->property['Model']."
;"); print ("Sum: ".$this->property['Number'] * $this ->property['Price']."
;"); } } $user = new User; $user ->setUsername("Anny"); $user ->setSex("girl"); $user ->setAge(20); $user ->show(); print("
;
;"); $car = new Car; $car ->setModel("BW600"); $car ->setNumber(5); $car ->setPrice(40000); $car ->show(); ?>
登录后复制

总结:

__call()函数是php类的默认魔法函数,__call() 在一个对象的上下文中,如果调用的方法不存在的时候,它将被触发。

相关推荐:

PHP中__call()和__callStatic()使用方法

php中__call()方法如何使用与重载实例分析

php的魔术方法__get(),__set(),__call(),__callStatic()以及static用法详解

魔术方法__call()实例详解(php面向对象高级教程)

以上是PHP 中__call()的使用方法的详细内容。更多信息请关注PHP中文网其他相关文章!

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