정적 메서드를 호출하기위한 전 처리기로 __callStatic을 사용하고 싶습니다. 내 생각은 메서드를 private으로 만들어 모든 정적 호출을 __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
고든 고든. 일치하지 않지만 읽을만한 가치가 있습니다 –