
get_mangled_object_vars 함수는 private 프로퍼티를 가져오지 못하는 이유는 PHP의 내부 구현에서 private 프로퍼티를 노출하지 않기 때문입니다.
private 프로퍼티를 가져오려면 ReflectionClass를 사용할 수 있습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
class TestClass {
private $privateProperty = 'private value';
public $publicProperty = 'public value';
}
$test = new TestClass();
$reflectionClass = new ReflectionClass('TestClass');
$privateProperty = $reflectionClass->getProperty('privateProperty');
$privateProperty->setAccessible(true);
print($privateProperty->getValue($test));
이 코드에서는 ReflectionClass를 사용하여 private 프로퍼티를 가져올 수 있습니다.
또한, PHP 7.1 이상에서는 클래스 내부에서 private 프로퍼티를 가져올 수 있는 방법이 추가되었습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
class TestClass {
private $privateProperty = 'private value';
public $publicProperty = 'public value';
public function getPrivateProperty() {
return $this->privateProperty;
}
}
$test = new TestClass();
print($test->getPrivateProperty());
이 코드에서는 private 프로퍼티를 가져올 수 있는 메서드를 추가하여 private 프로퍼티를 가져올 수 있습니다.
따라서, PHP 7.1 이상에서는 private 프로퍼티를 가져올 수 있는 방법이 추가되었습니다.
2025-06-30 11:19