__call();在对象中调用一个不可访问方法时,__call() 会被调用。
__call ( string $name
, array $arguments
):第一个参数是调用的方法名,第二个参数是该方法名的参数
class Demo{
public function __call($method,$arguments){
$var = '';
foreach ($arguments as $value) {
$var.=$value.',';
}
return '方法'.$method.'('.$var.')不存在';
}
}
//调用不存在的方法hello时,__call函数会自动调用
echo (new Demo)->hello("你好","小明");//方法hello(你好,小明,)不存在
__callStatic();调用一个不可访问的静态方法时,__callStatic() 会被调用
__callStatic ( string $name
, array $arguments
):第一个参数是调用的方法名,第二个参数是该方法名的参数
class Demo{
public static function __callStatic($method,$arguments){
$var = '';
foreach ($arguments as $value) {
$var.=$value.',';
}
return '方法'.$method.'('.$var.')不存在';
}
}
//调用不存在的方法world()时,__callStatic会自动调用
echo Demo::world("你好","世界");//方法world(你好,世界,)不存在