2
클래스 속성 값이 부모 클래스 또는 하위 클래스의 값인지 여부를 확인하는 방법이 있습니까?PHP : 하위 또는 상위 클래스의 클래스 속성/상수 값
class A {
public static $property1 = "X";
public static $property2 = "Y";
public static isFrom($propertyName) {
/// what should be here?
}
}
class B extends A {
public static $property1 = "Z";
}
class C extends B {
}
C::isFrom("property1"); /// should return "CLASS B";
C::isFrom("property2"); /// should return "CLASS A";
클래스 상수에 대해 같은 질문이 있습니다.
상수가 선언 된 정확한 클래스를 찾을 수 있습니까 (서브 클래스 C에 액세스합니까?)? 정의 된 함수 ("C :: SomeConstant"); SomeConstant가 A 또는 B 또는 C로 선언되면 true를 반환합니다. 상수가 클래스 C에서 부모가 아니라고 선언되는지 여부를 알아내는 해결책을 찾고 있습니다.
아마도 이것을 수행하기 위해 리플렉션을 사용해야 할 것입니다. 그러나 실제 응용 프로그램에서이 작업을 수행해야하는 경우 디자인이 좋지 않은 것처럼 보입니다. – FtDRbwLXw6