説明
string get_class(object $object
= ?)
パラメータ
-
object
-
調べるオブジェクト。
注意:
object
に明示的に null
を渡すことは、
PHP 7.2.0 以降許されなくなり、E_WARNING
レベルの警告が発生します。
PHP 8.0.0 以降では、null
を渡すと TypeError がスローされます。
戻り値
オブジェクト object
がインスタンス
であるクラスの名前を返します。
object
が
名前空間の中に存在しているクラスのインスタンスだった場合、
名前空間で修飾されたクラス名が返されます。
エラー / 例外
オブジェクト以外に対して get_class をコールすると、
TypeError がスローされます。
PHP 8.0.0 より前のバージョンでは、
E_WARNING
レベルの警告が発生していました。
get_class が、クラスの外部から引数なしで呼ばれた場合、
Error が発生します。PHP 8.0.0 より前のバージョンでは、
E_WARNING
レベルの警告が発生していました。
例
例1 get_class の使用例
<?php
class 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 のスーパークラスでの使用例
<?php
abstract 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 で使う
<?php
namespace Foo\Bar;
class Baz {
public function __construct()
{
}
}
$baz = new \Foo\Bar\Baz;
var_dump(get_class($baz));
?>
参考
- get_called_class
- get_parent_class
- gettype
- get_debug_type
- is_subclass_of