클래스 상수 (PHP 5.5)를 얻기 위해 범위 연산자와 함께 객체 연산자를 사용하려는 간단한 예제 코드가 있습니다.PHP - 다른 객체에 this와 액세스 객체 const
이 코드는 PHP 5.5.12에서 테스트되었으며,이 질문에서 이전 PHP 버전과의 호환성에는 신경 쓰지 않습니다.
질문은입니다. 개체가 (4)와 같이 다른 클래스의 속성으로 설정되고 const this와 함께 $ this를 사용하려는 경우 개체 const에 액세스 할 수 있습니까? 1과 2는 분명히 작동하지만, 3에서의 간단한 할당은 작동하지만 하나의 추가 라인을 만듭니다.
을 부인할만한 이유가 없거나 간단한 PHP 개발자가 결정했거나 간단하게 작동하지 않는 것을 잊었습니까? 내게는 4가 작동하지 않지만 3은 아무런 문제없이 작동한다는 것이 이상합니다.
먼저 실수를해야합니다. 상수는 _instance_ entity가 아닌 _class_ entity로 정의됩니다. PHP가 인스턴스의 참조 해제를 허용하더라도 인스턴스 "상수"를 참조하려는 경우 논리에 오류가 발생합니다. 그래서 PHP가 여기에 오류가 있다면 (분명히 가지고 있습니다), 인스턴스에 의한 클래스 상수의 참조 해제가 허용되며 다른 클래스의 속성 홀더를 통한 그러한 참조 해제는 불가능합니다. –
어쩌면 ,이 예제에서는 논리에 대해서만 생각하고있는 것은 아닙니다. 오히려 제 3의 경우와 제 4의 경우가 왜 다른지에 대한 것입니다. 어느 쪽이든 둘 다 작동해야하거나 또는 내 생각에 그들 둘 다 안된다. –