我想使用__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
謝謝戈登。它不匹配,但值得一讀 –