>백엔드 개발 >PHP 튜토리얼 >PHP 5.2에서 추상 정적 클래스 메서드가 허용되지 않는 이유는 무엇입니까?

PHP 5.2에서 추상 정적 클래스 메서드가 허용되지 않는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-16 07:54:03931검색

Why Are Abstract Static Class Methods Not Allowed in PHP 5.2 ?

PHP 5.2에서 추상 정적 클래스 메서드가 허용되지 않는 이유는 무엇입니까?

원래 엄격한 경고 없이 코딩되었지만 이제 프로젝트는 이를 활성화한 후 수많은 경고를 트리거합니다. 그 중에는 추상 상위 클래스 Program의 추상 정적 함수에 대한 경고가 있습니다. 문서에 따르면 추상 정적 함수는 PHP 5.0.x 및 5.1.x에서 의도치 않게 허용되었으며 더 이상 허용되지 않습니다.

왜 추상 정적 함수가 존재하지 않아야 합니까?

PHP 5.2에는 후기 정적 함수가 부족했습니다. PHP 5.3에서 사용할 수 있게 된 바인딩. 이 기능을 사용하면 상위 클래스 메서드가 하위 클래스의 정적 메서드를 호출할 수 있습니다. 이것이 없으면 상위 클래스가 하위 클래스의 정적 메소드를 호출할 수 없기 때문에 PHP 5.2의 추상 정적 메소드는 비효율적이었습니다.

The Saga Continues

후기 정적 바인딩이 도입되면서 추상 정적 메소드는 관련성을 다시 얻었습니다. . 그럼에도 불구하고 경고는 지속됩니다. 추상 정적 메소드가 추상 클래스에서 손상된 공용 메소드를 노출시킬 수 있다는 주장이 있을 수 있지만, 이 주장은 약한 것으로 간주됩니다.

버그 리포트 53081의 흥미로운 사례

PHP 버그 리포트 53081 요청 경고 제거. 처음에는 가짜로 간주된 보고서는 나중에 PHP 창시자인 Rasmus Lerdorf의 오해로 인해 가짜로 처리되었습니다.

PHP 7의 해결 방법

PHP 7에서는 경고가 제거됩니다. Nikita Popov의 PHP RFC: Reclassify E_STRICT 공지에 감사드립니다. 온전한 방향으로의 이러한 움직임을 통해 개발자는 PHP 5.2에서 발생하는 잘못된 경고가 발생하지 않고 추상 정적 메서드를 활용할 수 있습니다.

위 내용은 PHP 5.2에서 추상 정적 클래스 메서드가 허용되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.