PHP中__callStatic()方法详解
程序员文章站
2022-03-17 21:43:01
...
PHP中把以两个下划线__开头的方法称为魔术方法(Magic methods),这些方法在PHP中充当了举足轻重的作用。
相关:《PHP中__construct(),类的构造函数详解》《PHP中__destruct(),类的析构函数》《PHP中__call()方法详解》
PHP中__callStatic(),用静态方式中调用一个不可访问方法时调用
此方法与上面所说的 __call() 功能除了 __callStatic() 是未静态方法准备的之外,其它都是一样的。
请看下面代码:
<?php class Person { function say() { echo "Hello, world!<br>"; } /** * 声明此方法用来处理调用对象中不存在的方法 */ public static function __callStatic($funName, $arguments) { echo "你所调用的静态方法:" . $funName . "(参数:" ; // 输出调用不存在的方法名 print_r($arguments); // 输出调用不存在的方法时的参数列表 echo ")不存在!<br>\n"; // 结束换行 } } $Person = new Person(); $Person::run("teacher"); // 调用对象中不存在的方法,则自动调用了对象中的__call()方法 $Person::eat("小明", "苹果"); $Person->say();
运行结果如下:
你所调用的静态方法:run(参数:Array ( [0] => teacher ) )不存在! 你所调用的静态方法:eat(参数:Array ( [0] => 小明 [1] => 苹果 ) )不存在! Hello, world!