php __call()方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $arguments 则以数组的方式接收不存在方法的多个参数。
1、 __call() 方法的格式:
function __call(string $function_name, array $arguments)
{
// 方法体
}
2、 __call() 方法的作用:
为了避免当调用的方法不存在时产生错误,而意外的导致程序中止,可以使用 __call() 方法来避免。
该方法在调用的方法不存在时会自动调用,程序仍会继续执行下去。
3、 __call()魔法方法实例:
<?php
class Person
{
function say()
{
echo \"Hello, world!<br>\";
}
/**
* 声明此方法用来处理调用对象中不存在的方法
*/
function __call($funName, $arguments)
{
echo \"你所调用的函数:\" . $funName . \"(参数:\" ; // 输出调用不存在的方法名
print_r($arguments); // 输出调用不存在的方法时的参数列表
echo \")不存在!<br>\\n\"; // 结束换行
}
}
$Person = new Person();
$Person->run(\"www.manongjc.com\"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法
$Person->eat(\"小明\", \"苹果\");
$Person->say();
运行结果:
你所调用的函数:run(参数:Array ( [0] => www.manongjc.com ) )不存在!
你所调用的函数:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在!
Hello, world! 继续阅读与本文标签相同的文章
-
这间屋子没有电话
2026-05-14栏目: 教程
-
曾经扬言“我要摧毁人类”的机器人,在拥有公民身份后,近况如何?
2026-05-14栏目: 教程
-
中国客车“抢眼”世界客车博览会
2026-05-14栏目: 教程
-
充分利用系统磁盘空间,Windows 7操作系统如何创建压缩文件夹
2026-05-14栏目: 教程
-
iPhone11系列性能测试:碾压华为麒麟990,性能超越它两倍!
2026-05-14栏目: 教程
