함수 get_called_class

함수 get_called_class는 정적 메소드가 호출된 컨텍스트의 클래스 이름을 반환합니다. 이는 메소드가 정확히 어느 클래스에서 호출되었는지 확인해야 할 때 유용합니다.

구문

phpget_called_class();

예시

두 개의 클래스를 생성하고 자식 클래스에서 메소드를 호출해 보겠습니다:

php<?php
  class ParentClass {
    public static function test() {
      return get_called_class();
    }
  }

  class ChildClass extends ParentClass {}

  echo ChildClass::test();
?>

코드 실행 결과:

php'ChildClass'

예시

부모 클래스에서 함수가 호출될 때의 동작을 확인해 보겠습니다:

php<?php
  class A {
    public static function who() {
      return get_called_class();
    }
  }

  class B extends A {}

  echo A::who();
  echo "\n";
  echo B::who();
?>

코드 실행 결과:

php'A'
'B'

예시

필요한 클래스의 객체를 생성하기 위해 함수를 사용하는 예시입니다:

php<?php
  class Factory {
    public static function create() {
      $class = get_called_class();
      return new $class;
    }
  }

  class Product extends Factory {}

  $obj = Product::create();
  echo get_class($obj);
?>

코드 실행 결과:

php'Product'

함께 보기