我想使用__callStatic作为调用静态方法的预处理器。我的想法是使这些方法是私人的,所以每个静态调用都被转发给__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');
也许有人是有:-)
forward_static_call_array(array(self,$ name),$ params);循环太 –
*(小费)* http://kore-nordmann.de/blog/0103_static_considered_harmful.html – Gordon
谢谢戈登。它不匹配,但值得一读 –