クラス インスタンスにどのようなメソッドやプロパティがあるかをどうやって知ることができますか?
クラスインスタンスがどのようなメソッドと属性を持っているかを知るにはどうすればよいですか?
-----解決策---------
例 1. get_class_methods ( ) 例
class myclass {
// コンストラクター
function myclass() {
return(TRUE);
}
// メソッド 1
function myfunc1() {
return(TRUE);
}
// メソッド 2
function myfunc2() {
return ( TRUE);
}
}
$my_object = new myclass();
$class_methods = get_class_methods(get_class($my_object));
foreach ($class_methods as $method_name) {
echo "$method_namen";
}
?>
実行結果:
myclass
myfunc1
myfunc2
例 1. get_class_vars() 例
class myclass {
var $var1; // この変数にはデフォルト値はありません...
var $var2 = "xyz";
var $var3 = 100;
// コンストラクター
関数 myclass() {
return(TRUE);
}
}
$my_class = new myclass();
$class_vars = get_class_vars( get_class ($my_class));
foreach ($class_vars as $name => $value) {
echo "$name : $valuen";
}
? > ;
実行結果:
// PHP 4.2.0 より前
var2: xyz
var3: 100
// PHP 4.2.0 以降
var1 :
var2 : xyz
var3 : 100
------解決策----------------------
PHP マニュアルを検索してください。リフレクションの概念があります。それ (リフレクション)
<?php クラスA { パブリック $abc = 'kkk'; パブリック関数 test() { echo $this->abc; } } // オブジェクトをインスタンス化する $b = 新しい a(); //リフレクションオブジェクトをインスタンス化する $reflector = 新しい ReflectionClass('a'); // オブジェクトのプロパティを表示します $properties = $reflector->getProperties(); foreach($property として $property) { echo "$b->", $property->getName(), " => ", $b->{$property->getName()}, "n"; } // オブジェクトのメソッドを表示する $methods = $reflector->getMethods(); foreach($method として $method) { echo "$b->", $method->getName(), " => ", $b->{$method->getName()}(), "n"; <div class="clear"></div>