関数の概要
PHPのget_class関数は、指定したオブジェクトのクラス名を取得するための関数です。オブジェクト指向プログラミングで、実行時にオブジェクトのクラス名を確認したい場合に便利です。デバッグやクラスの種類によって処理を分けたいときなどに活用されます。
パラメータの説明
- object: クラス名を取得したいオブジェクトを指定します。このパラメータは必須です。
戻り値
指定したオブジェクトのクラス名を文字列で返します。もしパラメータがオブジェクトでない場合は、PHP 7.2以降はTypeErrorがスローされます。
使用例
基本的な使い方
<?php
class Animal {
}
$cat = new Animal();
echo get_class($cat); // Animal
?>
この例では、Animalクラスのインスタンスである$catのクラス名「Animal」が取得され、表示されます。
継承されたクラスでの使用例
<?php
class Vehicle {
}
class Car extends Vehicle {
}
$myCar = new Car();
echo get_class($myCar); // Car
?>
CarクラスはVehicleクラスを継承していますが、get_classはオブジェクトが実際に属している「Car」というクラス名を返します。
動的にクラス名を判別する例
<?php
function printClassName($obj) {
echo "このオブジェクトのクラスは ". get_class($obj) ." です。";
}
class Dog {}
class Cat {}
$dog = new Dog();
$cat = new Cat();
printClassName($dog); // このオブジェクトのクラスは Dog です。
printClassName($cat); // このオブジェクトのクラスは Cat です。
?>
関数に渡されたオブジェクトがどのクラスのインスタンスかを動的に判別して表示しています。
関連する関数
- get_parent_class(): 指定したオブジェクトの親クラス名を取得します。
- is_a(): オブジェクトが特定のクラスのインスタンスかどうかをチェックします。
- gettype(): 変数の型を返します。基本データ型かクラスかの判別に使います。
まとめ
get_class関数は、PHPでオブジェクトのクラス名を簡単に取得できる便利な関数です。デバッグや、オブジェクトの種類によって条件分岐を行う際に役立ちます。引数にはオブジェクトを渡す必要があり、正確なクラス名が返されるため、オブジェクト指向プログラミングで必須の関数と言えるでしょう。
