最も一般的に使用される PHP リフレクション関数 get_class get_class_methods
1. get_class ? オブジェクトのクラス名を返します
string get_class ([ object $obj ] )
オブジェクト インスタンス obj が属するクラスの名前を返します所属しています。 obj がオブジェクトでない場合は FALSE を返します。
注: PHP 拡張ライブラリで定義されたクラスは、元の定義の名前を返します。 PHP 4 では、get_class() はユーザー定義のクラス名の小文字形式を返しましたが、PHP 5 では、拡張ライブラリ内のクラス名と同様に、定義されたとおりのクラス名の名前を返します。
注: PHP 5 以降、オブジェクトのメソッド内で呼び出される場合、obj はオプションです。 exexample#1 get_class()を使用します。 ) , "/n";
}}
// オブジェクトを作成します
$bar = new foo();
// 外部呼び出し
echo "その名前は " , get_class($ bar) , " /n ";
//内部呼び出し
$bar->name();
?>
上記の例は次のように出力します:
Its name is foo My name is foo
2.get_class_methods ? 返回由类的方法名组成的数组
class myclass { // コンストラクター
function myclass()
{ return(true) }
//method; 1
関数 myfunc1 ()
{return(true) }
// メソッド 2
function myfunc2(){
return(true) }
}
$class_methods = get_class_methods('myclass'); / /または
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name/n"
;出力:
myclass myfunc1 myfunc2
class myclass {
var $var1; // 此变量没有默认值……
var $var2 = "xyz";
var $var3 = 100;
private $var4; // PHP 5
// constructor
function myclass() {
// change some properties
$this->var1 = "foo";
$this->var2 = "bar";
return true;
}
}
$my_class = new myclass();
$class_vars = get_class_vars(get_class($my_class));
foreach ($class_vars as $name => $value) {
echo "$name : $value/n";
}
?>
上例将输出:
// 在 PHP 4.2.0 之前 var2 : xyz var3 : 100 // 从 PHP 4.2.0 开始 var1 : var2 : xyz var3 : 100