0
So you can't make an abstract static function in php.PHP : 추상 정적 기능 모범 사례
대안을 내가 그들을 보는 바와 같이 다음과 같다
함수 비 정적 확인하고 만들 수있는 여분의 상용구 코드를 작성하고 객체를 저장 그래서 해당 기능에 액세스 할 수 있습니다. 그것을 구현하지 않는 자식 클래스에 대한 호출이 예외를 던질 수 있도록
abstract class Foo { abstract public function bar(); } abstract class Good { public function bar() { ... } } // boilerplate to access Good->bar()... potentially a lot in multiple files $g = new Good(); $g->bar();
BadMethodCallException 내 추상 클래스의 정적 함수를 작성.
abstract class Foo { public static function bar() { throw new BadMethodCallException("Not Implemented By Child Class :("); } } class Good extends Foo { public static function bar() { // ... } } class Bad extends Foo { // no bar implementation } Good::bar(); // works Bad::bar(): // exception
나는 2쪽으로 기울고 있어요하지만이 문제 또는 모범 사례에 어떤 사회 합의가 있는지 궁금 해서요.
정적 추상 메서드를 어떻게 호출할까요? 아마도 함수를 호출하는 방법을 설명하면 솔루션을 제안 할 수 있습니다. – scragar
자식 클래스에서 정적 추상 메서드를 구현 한 다음 호출하고 싶습니다. 예 :'Good :: bar()'. – jtfairbank
당신이 사용하고있는 클래스를 알게된다면 추상 스텁은 쓸모가 없게됩니다. 왜냐하면 추상 클래스는 필수가 아니기 때문에 실제 클래스에만 필요하기 때문입니다. – scragar