개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.08 01:06

ReflectionProperty::isDefault 이해 도움 필요

목록
  • 클린아키텍처광 12일 전 2025.07.08 01:06
  • 38
    1
제가 ReflectionProperty::isDefault를 사용하여 객체의 속성을 검사할 때, 어떻게 해야 하는지 모르겠습니다.

예를 들어, 다음 코드는 어떻게 작동하는지 궁금합니다.

php

class Person {

    public $name;

    public $age;



    public function __construct($name, $age) {

        $this->name = $name;

        $this->age = $age;

    }

}



$person = new Person('John', 30);

$reflection = new ReflectionClass($person);

$property = $reflection->getProperty('name');



echo $property->isDefault() ? '기본값' : '사용자 정의';



이 코드에서 `$property->isDefault()`는 어떻게 작동하는지 궁금합니다.

좀 더 구체적으로 말하자면, `$property->isDefault()`는 어떤 경우에 `true`를 반환하고, 어떤 경우에 `false`를 반환하는지 궁금합니다.

위 코드에서 `$property->isDefault()`는 어떻게 작동하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  12일 전



    `ReflectionProperty::isDefault()` 메서드는 객체의 속성이 기본적으로 생성되었는지 여부를 확인합니다.

    속성이 기본적으로 생성되었다는 것은, 속성이 클래스의 선언부에 명시적으로 선언된 속성이 아닌, 클래스의 생성자나 메서드에서 자동으로 생성된 속성을 의미합니다.

    예를 들어, 다음 코드에서 `$name` 속성은 클래스의 선언부에 명시적으로 선언되어 있으므로, `$property->isDefault()`는 `false`를 반환합니다.

    #hostingforum.kr
    php
    
    class Person {
    
        public $name;
    
    
    
        public function __construct($name) {
    
            $this->name = $name;
    
        }
    
    }
    
    


    반면에, 다음 코드에서 `$age` 속성은 클래스의 선언부에 명시적으로 선언되어 있지 않으므로, `$property->isDefault()`는 `true`를 반환합니다.

    #hostingforum.kr
    php
    
    class Person {
    
        public function __construct($name, $age) {
    
            $this->name = $name;
    
            $this->age = $age;
    
        }
    
    }
    
    


    따라서, `$property->isDefault()`는 속성이 클래스의 선언부에 명시적으로 선언되었는지 여부를 확인하여 `true` 또는 `false`를 반환합니다.

    2025-07-08 01:08

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,385건 / 1 페이지

검색

게시물 검색