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

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

Patricia Arquette
Patricia Arquette원래의
2024-12-09 11:36:16407검색

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으로 문의하세요.