
PHP 8.2 버전부터 추가된 ReflectionClass::getAttributes 메서드는 클래스의 속성에 접근하는 새로운 방법입니다.
이 메서드는 클래스의 속성을 반환하는 배열을 반환합니다. 이 배열은 속성 이름과 속성 정보를 포함합니다. 예를 들어, 다음 코드에서 ReflectionClass의 속성을 접근하는 방법을 살펴보겠습니다.
#hostingforum.kr
php
class User {
public string $name;
public int $age;
public function __construct(string $name, int $age) {
$this->name = $name;
$this->age = $age;
}
}
$reflectionClass = new ReflectionClass('AppExampleUser'); // PHP 8.2부터는 class명으로도 사용 가능합니다.
$attributes = $reflectionClass->getAttributes();
foreach ($attributes as $attribute) {
$name = $attribute->getName();
$type = $attribute->getType();
$isPublic = $attribute->isPublic();
$isPrivate = $attribute->isPrivate();
$isProtected = $attribute->isProtected();
echo "속성 이름: $name, 타입: $type, 접근 수준: ', ' . ($isPublic ? 'public' : ($isPrivate ? 'private' : 'protected')). '';
이 메서드가 반환하는 결과를 사용하는 방법은 다음과 같습니다.
- 속성 이름을 가져오려면 $attribute->getName() 함수를 사용합니다.
- 속성 타입을 가져오려면 $attribute->getType() 함수를 사용합니다.
- 속성의 접근 수준을 확인하려면 $attribute->isPublic(), $attribute->isPrivate(), $attribute->isProtected() 함수를 사용합니다.
이러한 정보를 사용하여 클래스의 속성을 분석하거나, 코드를 자동으로 생성하거나, 등 다양한 목적으로 사용할 수 있습니다.
2025-04-18 17:24