我想使用 __callStatic 作为调用静态方法的预处理器。我的想法是将方法设为私有,以便将每个静态调用转发到 __callStatic。然后我可以用它来做一些事情,然后调用该方法。但这似乎不可能。这是一个例子:
class A {
public static function __callStatic($name, $params) {
var_dump($name);
// TODO call the private function from class B here
//call_user_func_array('self::' . $name, $params); //infinite loop
}
}
class B extends A {
private static function test($bar) {
echo $bar;
}
}
B::test('foo');
也许有人有解决方案:-)