5.5 具有动态特性的静态方法――《PHP高级程序设计:模式、框架和测试》
5.5 具有动态特性的静态方法
__call()函数可用来创建任意匹配类型的方法,这种方法可以处理调用类的未定义方法的情况。方法的参数是被调用的方法的名称以及传递给该方法的参数数组。现在可以用和__call方法一样的方式创建具有动态特性的静态方法。在PHP 6中,静态功能是通过实现魔术方法__callStatic()来完成的,如代码清单5-14所示。
代码清单5-14 为具有动态特性的静态方法使用__callStatic方法
class MyClass {
public static function __callStatic($name, $parameters) {
echo $name .' method called. Parameters: '. PHP_EOL .
var_export($parameters, true) . PHP_EOL;
}
}
MyClass::bogus(1, false, 'a');
bogus method called. Parameters:
array (
0 => 1,
1 => false,
2 => 'a',
)