3. get_class_methods、get_class_vars、および get_object_vars:
これら 3 つの関数には共通点が 1 つあります。それは、スコープの表示範囲内のすべてのメンバー関数、メンバー変数、または非静的メンバー変数のみを取得できるということです。たとえば、クラス内で呼び出された場合は、すべてのメンバー関数または変数が条件を満たしますが、クラス外で呼び出された場合は、共通の関数および変数のみを返すことができます。
関数出力配列($functionName, $items) {
"$functionName.................................n" を印刷します;
foreach ($items as $key => $value) {
print '$key = '.$key ' =>
}
}
クラス TestClass {
パブリック $publicVar = 1;
プライベート $privateVar = 2;
静的プライベート $staticPrivateVar = "こんにちは";
静的パブリック$staticPublicVar;
プライベート関数 privateFunction() {
}
関数 publicFunction() {
Output_array("get_class_methods",get_class_methods(__CLASS__));
Output_array('get_class_vars',get_class_vars(__CLASS__));
Output_array('get_object_vars',get_object_vars($this));
}
}
$testObj = 新しい TestClass();
print "以下は TestClass.n 内での出力です";
$testObj->publicFunction();
print "n次は TestClass.n からの出力です";
output_array('get_class_methods',get_class_methods('TestClass'));
output_array('get_class_vars',get_class_vars('TestClass'));
output_array('get_object_vars',get_object_vars($testObj));
実行結果は次のとおりです:
bogon:TestPhp liulei$ php class_exist_test.php
以下はTestClass内での出力です。
get_class_methods....
$key = 0 => $value = privateFunction
$key = 1 => $value = publicFunction
get_class_vars....
$key = publicVar => $value = 1
$key = privateVar => $value = 2
$key = staticPrivateVar => $value = こんにちは
$key = staticPublicVar => $value =
get_object_vars....
$key = publicVar => $value = 1
$key = privateVar => $value = 2
以下はTestClassからの出力です。
get_class_methods....
$key = 0 => $value = publicFunction
get_class_vars....
$key = publicVar => $value = 1
$key = staticPublicVar => $value =
get_object_vars....
$key = publicVar => $value = 1
4. get_called_class と get_class:
string get_class ([ object $object = NULL ]) パラメータオブジェクトのクラス名を取得します。
string get_called_class (void) 静的メソッドが呼び出されたときの現在のクラス名。
文字列(4)「ベース」
string(6) "派生"
文字列(4)「ベース」
string(6) "派生"
5. get_parent_class、is_a、is_subclass_of:
これら 3 つの関数はすべてクラスの継承に関連しているため、グループ化しました。
string get_parent_class ([mixed $object ]) パラメータオブジェクトの親クラスを取得します。親クラスがない場合は false を返します。
bool is_a (object $object, string $class_name) 最初のパラメーターのオブジェクトが $class_name クラス自体であるか、その親クラスのオブジェクトであるかを決定します。
bool is_subclass_of (mixed $object, string $class_name) 最初のパラメーター オブジェクトが $class_name のサブクラスかどうかを判断します。
クラスベース{
静的パブリック関数 test() {
var_dump(get_called_class());
}
}
クラス派生はBaseを拡張します{
}
var_dump(get_parent_class(new Derive()));
var_dump(is_a(new Derive(),'Derive'));
var_dump(is_a(new Derive(),'Base'));
var_dump(is_a(new Base(),'Derive'));
var_dump(is_subclass_of(new Derive(),'Derive'));
var_dump(is_subclass_of(new Derive(),'Base'));
実行結果は次のとおりです:
bogon:TestPhp$ php another_test_class.php
文字列(4)「ベース」
ブール(真)
ブール(真)
ブール(偽)
ブール(偽)
ブール(真)
http://www.bkjia.com/PHPjc/678024.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/678024.html技術記事 1.interface_exists、class_exists、method_exists、property_exists: 名前が示すように、上記の関数の名前から一部の関数を推測できます。私がフォローしているのはこれだと思います...