関数 get_called_class
関数 get_called_class は、静的メソッドがコンテキスト内で呼び出されたクラスの名前を返します。これは、どのクラスからメソッドが呼び出されたのかを特定する必要がある、継承を扱う際に便利です。
構文
get_called_class();
例
2つのクラスを作成し、子クラスからメソッドを呼び出してみます:
<?php
class ParentClass {
public static function test() {
return get_called_class();
}
}
class ChildClass extends ParentClass {}
echo ChildClass::test();
?>
コードの実行結果:
'ChildClass'
例
親クラスから呼び出した場合の関数の動作を確認します:
<?php
class A {
public static function who() {
return get_called_class();
}
}
class B extends A {}
echo A::who();
echo "\n";
echo B::who();
?>
コードの実行結果:
'A'
'B'
例
必要なクラスのオブジェクトを作成するための関数の使用:
<?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);
?>
コードの実行結果:
'Product'
関連項目
-
オブジェクトのクラスを返す関数 get_class、
-
親クラスを返す関数 get_parent_class、