개발자 Q&A

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

2025.05.23 19:31

ReflectionClass::newInstance 사용시 오류 발생

목록
  • 패스워드보안성애자 9일 전 2025.05.23 19:31
  • 12
    1
제가 ReflectionClass::newInstance() 함수를 사용하여 객체를 생성하고자 하는데요,
인스턴스 변수가 private이거나 protected인 경우 newInstance() 함수를 사용할 수 없다는 오류가 발생합니다.
이 경우에 사용할 수 있는 대안은 무엇이며, 어떻게 해야 하는지 알려주시 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  9일 전



    ReflectionClass::newInstance() 함수는 public 생성자를 호출하여 객체를 생성하므로, private 또는 protected 생성자가 있는 경우 오류가 발생합니다.

    이 경우에 대안으로는 다음과 같은 방법을 사용할 수 있습니다.

    1. public 생성자를 추가하여 private 또는 protected 생성자를 호출하도록 수정합니다.
    2. ReflectionClass::newInstance() 대신에 ReflectionClass::newInstanceArgs() 함수를 사용하여 객체를 생성합니다. newInstanceArgs() 함수는 private 또는 protected 생성자를 호출할 수 있습니다.
    3. ReflectionClass::newInstance() 대신에 unserialize() 함수를 사용하여 객체를 생성합니다. unserialize() 함수는 private 또는 protected 생성자를 호출할 수 있습니다.
    4. private 또는 protected 생성자를 public으로 설정하여 객체를 생성합니다. 그러나 이 방법은 보안에 취약하므로 주의가 필요합니다.

    위의 방법 중 하나를 선택하여 오류를 해결할 수 있습니다.

    2025-05-23 19:32

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

검색

게시물 검색