ホームページ > バックエンド開発 > PHPチュートリアル > クラスインスタンスがどのようなメソッドとプロパティを持っているかを知る方法

クラスインスタンスがどのようなメソッドとプロパティを持っているかを知る方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 13:12:45
オリジナル
804 人が閲覧しました

クラス インスタンスにどのようなメソッドやプロパティがあるかをどうやって知ることができますか?
クラスインスタンスがどのようなメソッドと属性を持っているかを知るにはどうすればよいですか?


-----解決策---------
例 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 コード

<?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>
ログイン後にコピー
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート