개발자 Q&A

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

2025.08.11 22:30

ReflectionClass::newInstance 사용시 객체 생성하는 방법에 대해 질문이 있습니다.

목록
  • 크래시헌터 7시간 전 2025.08.11 22:30 새글
  • 2
    1
제가 ReflectionClass::newInstance를 사용하여 객체를 생성하려고 하는데, 다음과 같은 코드를 작성했습니다.

php

$reflectionClass = new ReflectionClass('MyClass');

$object = $reflectionClass->newInstance();



이 코드는 객체를 생성할 수 있지만, $object는 stdClass object로 생성됩니다. 어떻게 MyClass의 생성자 메소드를 호출하여 객체를 생성할 수 있을까요?

또한, ReflectionClass::newInstance() 메소드의 파라미터에 대해 궁금한 점이 있습니다. 어떤 파라미터를 사용하여 객체를 생성할 수 있을까요?

위 질문에 대한 답변을 부탁드립니다.

    댓글목록

    profile_image
    나우호스팅  7시간 전



    ReflectionClass::newInstance() 메소드는 stdClass object를 생성합니다. MyClass의 생성자 메소드를 호출하여 객체를 생성하려면 newInstanceArgs() 메소드를 사용해야 합니다.

    newInstanceArgs() 메소드는 객체를 생성할 때 생성자 메소드에 필요한 인자를 전달할 수 있습니다. 예를 들어, MyClass의 생성자 메소드가 다음과 같이 정의되어 있다고 가정해 보겠습니다.

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


    이 경우, newInstanceArgs() 메소드를 사용하여 객체를 생성할 수 있습니다.

    #hostingforum.kr
    php
    
    $reflectionClass = new ReflectionClass('MyClass');
    
    $object = $reflectionClass->newInstanceArgs(array('John', 30));
    
    


    또한, newInstance() 메소드의 파라미터는 다음과 같습니다.

    * $object: 생성된 객체
    * $args: 생성자 메소드에 필요한 인자

    newInstanceArgs() 메소드의 파라미터는 다음과 같습니다.

    * $args: 생성자 메소드에 필요한 인자

    newInstance() 메소드는 stdClass object를 생성하기 때문에, 객체의 속성을 직접 설정할 수 있습니다. 하지만, newInstanceArgs() 메소드는 생성자 메소드를 호출하여 객체를 생성하기 때문에, 객체의 속성을 직접 설정할 수 없습니다.

    따라서, newInstanceArgs() 메소드를 사용하여 객체를 생성하는 것이 좋습니다.

    2025-08-11 22:31

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

검색

게시물 검색