PHPのリフレクション関数

WBOY
リリース: 2016-06-23 14:30:44
オリジナル
1035 人が閲覧しました

最も一般的に使用される 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 ? 返回由类的方法名组成的数组
ログイン後にコピー
説明
array get_class_methods (mixed $クラス名 )

class_name で指定されたクラスで定義されたメソッド名で構成される配列を返します。エラーが発生した場合は NULL が返されます。



Example#1 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 
ログイン後にコピー





3.
get_class_vars クラスのデフォルトのプロパティで構成される配列を返します
説明
array get_class_vars ( string $class_name )
のデフォルトのパブリック プロパティで構成される連想配列を返しますクラス、この配列要素は varname => value の形式で存在します。

注: PHP 4.2.0 より前では、get_class_vars() には初期化されていないクラス変数は含まれません。

例#1 get_class_vars() の例


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 
ログイン後にコピー

 
ログイン後にコピー
ログイン後にコピー

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