>백엔드 개발 >PHP 튜토리얼 >이전 PHP 버전(5.5 이전)에서 보호된 개체 속성에 어떻게 액세스할 수 있습니까?

이전 PHP 버전(5.5 이전)에서 보호된 개체 속성에 어떻게 액세스할 수 있습니까?

DDD
DDD원래의
2024-12-05 16:15:14269검색

How Can I Access Protected Object Properties in Older PHP Versions (Pre-5.5)?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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