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