Php/docs/function.get-class

提供:Dev Guides
< Php
移動先:案内検索

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 のデフォルトのパラメータとして

扱われなくなり、 正しい入力ではなくなりました。 これより前のバージョンでは、object のデフォルトのパラメータは null であり、何も値を渡さないのと同じ意味でした。


例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() - あるオブジェクトが指定したクラスのサブクラスに属するか (あるいは指定したインターフェイスを実装しているか) どうかを調べる