PHP魔术方法__call()如何使用?PHP魔术方法__call使用实例!前面先后学习和记载了php魔术方法中的构造方法和析构方法以及__set()、__get(),而__set()、__get()方法主要是针对类中的属性进行操作,那么有没有对类中方法进行操作的魔术方法呢?__call方法就是可以对类中的方法进行这样操作的方法。
__call方法的作用
在对象中调用一个不可访问的方法时,__call()魔术方法就会被调用。
__call方法的使用
__call()方法的语法格式
public mixed__call(string $name,array $arguments)
__call()方法参数说明
- $name:方法名;
- $arguments:方法的参数,数据类型为数组类型;
__call方法的使用实例
<?php
class people{
function nationality ($name,$language){
echo $name.'你所说的语言是'.$language;
}
function __call($name, $arguments)
{
echo '你所调用的方法不存在时,将调用此__call魔术方法<br>';
echo '调用的方法名为:'.$name.'<br>';
echo '调用的方法参数为:<br>';
foreach ($arguments as $k=>$v){
echo $k.'=>'.$v.'<br>';
}
}
}
//实例化类
$people = new people;
//正常调用一个类的成员方法:
$people->nationality('lucy','english');
echo '<hr>';
//调用一个不存在的方法就会触发调用类中的__call魔术方法:
$people->what('aaa','bbb','ccc');
?>