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

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

Patricia Arquette
풀어 주다: 2024-12-09 11:36:16
원래의
526명이 탐색했습니다.

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

리플렉션 없이 PHP의 보호 속성에 액세스

직접 액세스가 제한되면 객체의 보호 속성을 얻는 것이 어려울 수 있습니다. 다음 예를 고려하십시오.

class Fields_Form_Element_Location {
    protected $_value = 93399;
}
로그인 후 복사

$obj->_value 또는 $obj->value와 같은 $_value에 직접 액세스하면 오류가 발생합니다.

대안 5.5 이하 PHP 버전에 대한 솔루션

PHP Reflection은 아래 PHP 버전에서는 사용할 수 없으므로 5.5에서 대체 접근 방식은 get_class_vars() 함수를 활용하는 것입니다.

function accessProtected($obj, $prop) {
  $vars = get_class_vars(get_class($obj));
  return $vars[$prop];
}
로그인 후 복사

이 함수를 활용하면 접근성 설정을 수정하지 않고도 보호 속성의 값을 검색할 수 있습니다.

사용 예

$obj = new Fields_Form_Element_Location;
$value = accessProtected($obj, '_value');
echo $value; // Output: 93399
로그인 후 복사

이 방법을 사용하면 PHP에서 보호된 속성을 검색할 수 있습니다. Reflection을 지원하지 않는 버전. 그러나 모든 경우에 적용할 수 있는 것은 아니며, 특히 보호 속성이 동적으로 할당되는 경우에는 더욱 그렇습니다.

위 내용은 이전 PHP 버전(5.5 이전)에서 보호된 속성에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿