get_class
(PHP 4, PHP 5, PHP 7)
get_class — オブジェクトのクラス名を返す
説明
get_class
([ object $object
] ) : string
指定した object
のクラス名を取得します。
パラメータ
object
調べるオブジェクト。クラスの内部ではこのパラメータを省略することもできます。
注意:
object
に明示的にnull
を渡すことは、 PHP 7.2.0 以降許されなくなりました。 このパラメータは未だオプションです。 get_class() 関数を クラスの内部からパラメータなしに呼び出しても動作します。 しかし、null
を渡してしまうとE_WARNING
レベルの警告が発生します。
返り値
オブジェクト object
がインスタンス
であるクラスの名前を返します。object
がオブジェクトでない場合にはfalse
が返されます。
クラスの内部で object
を省略すると、
そのクラスの名前を返します。
object
が
名前空間の中に存在しているクラスのインスタンスだった場合、
名前空間で修飾されたクラス名が返されます。
エラー / 例外
オブジェクト以外に対して get_class() をコールすると、
E_WARNING
レベルのエラーが発生します。
変更履歴
バージョン | 説明 |
---|---|
7.2.0 | null は、object のデフォルトのパラメータとして
扱われなくなり、
正しい入力ではなくなりました。
これより前のバージョンでは、 |
例
例1 get_class() の使用例
<?phpclass foo { function name() { echo "My name is " , get_class($this) , "\n"; }}// オブジェクトを生成$bar = new foo();// 外部からコールecho "Its name is " , get_class($bar) , "\n";// 内部からコール$bar->name();?>
上の例の出力は以下となります。
Its name is foo My name is foo
例2 get_class() のスーパークラスでの使用例
<?phpabstract class bar { public function __construct() { var_dump(get_class($this)); var_dump(get_class()); }}class foo extends bar {}new foo;?>
上の例の出力は以下となります。
string(3) "foo" string(3) "bar"
例3 名前空間の中にあるクラスを get_class() で使う
<?phpnamespace Foo\Bar;class Baz { public function __construct() { }}$baz = new \Foo\Bar\Baz;var_dump(get_class($baz));?>
上の例の出力は以下となります。
string(11) "Foo\Bar\Baz"
参考
- get_called_class() - "静的遅延束縛" のクラス名
- get_parent_class() - オブジェクトの親クラスの名前を取得する
- gettype() - 変数の型を取得する
- is_subclass_of() - あるオブジェクトが指定したクラスのサブクラスに属するか (あるいは指定したインターフェイスを実装しているか) どうかを調べる