您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php的__call函数是属于哪一类

2025/10/11 22:47:43发布12次查看
php的__call() 函数是一个魔术函数,所谓php的魔术函数,简单的说就是在php中具有特定名称——都是用两个下划线开头的,并且php解释器会在运行到某一个时机的时候自动查找并运行的方法。
当我们调了一个不可以访问的成员方法时,__call魔术方法就会被调用.
不可以访问的成员方法的是指(1. 该成员方法不存在, 2. 成员方法是protected或者 private) (推荐学习:php视频教程)
我们就是希望,在类的外部直接调用不可访问的成员方法(private , protected).
案例说明
<?php header('content-type:text/html;charset=utf-8'); //__call魔术方法 class monk{ public $name; protected $hobby; public function __construct($name, $hobby){ $this->name = $name; $this->hobby = $hobby; } //输出该对象的信息 public function showinfo(){ echo '<br> 名字是 ' . $this->name; foreach($this->hobby as $hobby){ echo '<br> 爱好有 ' . $hobby; } } //会做算术题, 保护的 protected function getsum($num1, $num2){ return $num1 + $num2; } //编写这个__call魔术方法, __call 魔术方法会接收到两个参数 /* @param $method_name 就是函数名 @param $parameters 就是参数,类型是array */ public function __call($method_name, $parameters){ // echo '<br> method_name = ' . $method_name;// echo '<br> $parameters <br>';// var_dump($parameters); //判断 $this 中是否有 $method_name 函数,有就返回true,否则返回false if(method_exists($this, $method_name)){ return $this->$method_name($parameters[0], $parameters[1]); }else{ return '没有你要调用的函数'; } } } $monk = new monk('济公', array('no1'=>'腾云驾雾', 'no2'=>'喝酒')); $monk->showinfo(); //当我们直接调用 protected 方法时,就会触发 __call 魔术方法 echo '<br> 结果是' . $monk->getsum(100, 200);
以上就是php的__call函数是属于哪一类的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product