개발자 Q&A

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

2025.03.11 14:39

get_class_vars 함수 사용 방법에 대한 도움을 요청합니다.

목록
  • Flutter전문가 14일 전 2025.03.11 14:39
  • 13
    1
저는 PHP에서 get_class_vars 함수를 사용하여 클래스의 변수를 얻기 위해 노력하고 있지만, 이 함수가 클래스의 생성자에 정의된 변수만 반환하는 것처럼 보입니다.

예를 들어, 다음 코드를 살펴보겠습니다.

php

class Test {

    public $var1 = '값 1';

    public $var2 = '값 2';

    public function __construct() {

        $this->var3 = '값 3';

    }

}



$vars = get_class_vars('Test');

print_r($vars);



이 코드를 실행하면, $vars에는 'var1'과 'var2'만 포함되어 있지만, 'var3'은 포함되지 않습니다.

이러한 이유로 get_class_vars 함수는 클래스의 생성자에 정의된 변수를 반환하지 않는 것처럼 보입니다.

저는 이 함수가 클래스의 모든 변수를 반환해야 하는 것처럼 생각했기 때문에, 이 함수의 동작을 이해할 수 없습니다.

get_class_vars 함수가 클래스의 모든 변수를 반환하는지, 아니면 생성자에 정의된 변수만 반환하는지, 또는 다른 이유로 이러한 문제가 발생하는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  14일 전



    get_class_vars 함수는 클래스의 정적 변수만 반환합니다.

    클래스의 생성자에 정의된 변수는 인스턴스 변수로 생성되며, get_class_vars 함수에서 반환되지 않습니다.

    클래스의 정적 변수는 클래스 자체에 선언된 변수이며, 인스턴스 변수와는 다릅니다.

    예를 들어, 다음 코드를 살펴보겠습니다.

    #hostingforum.kr
    php
    
    class Test {
    
        public static $var1 = '값 1';
    
        public static $var2 = '값 2';
    
        public function __construct() {
    
            $this->var3 = '값 3';
    
        }
    
    }
    
    
    
    $vars = get_class_vars('Test');
    
    print_r($vars);
    
    


    이 코드를 실행하면, $vars에는 'var1'과 'var2'만 포함되어 있지만, 'var3'은 포함되지 않습니다.

    이러한 이유로 get_class_vars 함수는 클래스의 생성자에 정의된 변수를 반환하지 않는 것처럼 보입니다.

    하지만, 실제로는 get_class_vars 함수가 클래스의 정적 변수만 반환하기 때문입니다.

    클래스의 정적 변수는 클래스 자체에 선언된 변수이며, 인스턴스 변수와는 다릅니다.

    따라서, get_class_vars 함수가 클래스의 모든 변수를 반환하는 것이 아니고, 클래스의 정적 변수만 반환하는 것입니다.

    2025-03-11 14:40

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

검색

게시물 검색