확장 PHP 클래스의 정적 호출에서 클래스 이름 검색
PHP에서 클래스를 확장하면 속성을 상속하는 하위 클래스를 생성할 수 있습니다. 및 부모 클래스의 메서드. 그러나 상위 클래스의 정적 메서드는 확장 클래스의 클래스 이름에 직접 액세스할 수 없습니다.
문제:
정적 메서드 호출 시 확장 클래스의 클래스 이름을 가져옵니다.
예:
<code class="php">class Action { function n() {/* something */} } class MyAction extends Action {/* some methods here */}</code>
MyAction::n()을 호출하면 "MyAction"이 반환되어야 합니다. 그러나 Action 클래스의 __CLASS__는 "Action"만 반환합니다.
후기 정적 바인딩(PHP 5.3):
PHP 5.3부터 후기 정적 바인딩을 사용하면 대상을 확인할 수 있습니다. 런타임 시 정적 메서드 호출을 위한 클래스입니다. get_called_class()를 사용하여 클래스 이름을 검색합니다.
<code class="php">class Action { public static function n() { return get_called_class(); } } class MyAction extends Action { } echo MyAction::n(); //displays MyAction</code>
또는:
정적 메소드가 정적이 아닌 경우 메소드에서 get_class($this)를 사용하여 클래스 이름을 얻으세요.
위 내용은 PHP의 정적 메서드 호출에서 확장 클래스의 클래스 이름을 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!