PHP의 보호된 객체 속성에 액세스
PHP의 객체 지향 프로그래밍은 공개, 보호, 비공개라는 세 가지 액세스 수정자를 제공합니다. 그러나 보호된 속성에 직접 액세스할 수 없으면 특정 개체로 작업할 때 실망스러울 수 있습니다. 이 기사에서는 PHP 5.5 이전 버전에서 보호 속성을 검색하기 위한 솔루션을 살펴봅니다.
Rescue를 위한 ReflectionClass
PHP 5.5 이전에는 ReflectionClass 클래스가 다음을 수행하는 메서드를 제공했습니다. 보호된 속성에 액세스합니다. 다음 함수는 그 방법을 보여줍니다.
function accessProtected($obj, $prop) { $reflection = new ReflectionClass($obj); $property = $reflection->getProperty($prop); $property->setAccessible(true); return $property->getValue($obj); }
이 함수를 사용하면 개체와 속성 이름을 인수로 전달하여 보호된 속성에 액세스할 수 있습니다. 예를 들어, 예제의 개체가 다음과 같이 주어진 경우:
$value = accessProtected($obj, '_value');
이 방법은 보호된 _value 속성을 효과적으로 검색하여 $value 변수에 저장합니다.
PHP 5.2에 대한 참고 사항 .17
ReflectionClass 솔루션은 로컬 환경에서는 효과적이었지만 PHP를 실행하는 서버에서는 사용하지 못할 수 있습니다. 버전 5.2.17. 안타깝게도 이러한 버전의 PHP에서는 보호 속성에 액세스할 수 있는 다른 방법이 없습니다.
위 내용은 이전 PHP 버전(5.5 이전)에서 보호된 개체 속성에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!