개발자 Q&A

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

2025.03.22 23:47

ReflectionProperty::isReadOnly 관련 질문

목록
  • 애자일광신도 1일 전 2025.03.22 23:47
  • 5
    1
교수님, ReflectionProperty::isReadOnly에 대해 이해를 도와주세요.

저는 ReflectionProperty::isReadOnly를 사용하여 프로퍼티가 읽기 전용인지 확인하려고 합니다. 하지만, 어떤 경우에 true를 반환하고 어떤 경우에 false를 반환하는지 정확한 규칙을 모르겠습니다.

예를 들어, 다음과 같은 코드가 있습니다.

php

class Person {

    private $name;



    public function __construct($name) {

        $this->name = $name;

    }



    public function getName() {

        return $this->name;

    }

}



$person = new Person('John');

$reflection = new ReflectionProperty($person, 'name');

echo $reflection->isReadOnly(); // 결과는?



위 코드에서 $reflection->isReadOnly();의 결과는 어떻게 결정되는지 궁금합니다.

교수님, 이 부분에 대해 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    ReflectionProperty::isReadOnly는 프로퍼티가 읽기 전용인지 여부를 확인하는 메서드입니다.

    이 메서드는 프로퍼티의 접근자(getter, setter)가 정의되어 있는지 여부에 따라 결정됩니다.

    예를 들어, 위 코드에서 Person 클래스의 $name 프로퍼티는 private 프로퍼티이므로, getter와 setter가 자동으로 생성됩니다.

    이 경우, ReflectionProperty::isReadOnly는 false를 반환합니다.

    만약 getter와 setter가 정의되어 있지 않은 경우, 프로퍼티는 읽기 전용으로 간주되어 true를 반환합니다.

    또한, 프로퍼티가 private이 아닌 경우, ReflectionProperty::isReadOnly는 false를 반환합니다.

    예를 들어, Person 클래스의 $name 프로퍼티를 public으로 변경하면, ReflectionProperty::isReadOnly는 false를 반환합니다.

    따라서, 위 코드에서 $reflection->isReadOnly();의 결과는 false입니다.

    2025-03-22 23:48

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

검색

게시물 검색