関数 get_called_class

関数 get_called_class は、静的メソッドがコンテキスト内で呼び出されたクラスの名前を返します。これは、どのクラスからメソッドが呼び出されたのかを特定する必要がある、継承を扱う際に便利です。

構文

phpget_called_class();

例

2つのクラスを作成し、子クラスからメソッドを呼び出してみます:

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'

関連項目