最常用的幾個個php反射函式 get_class get_class_methods
1. get_class — 返回物件的類名
string
get_class([ object
$obj
] )返回物件例項 obj
所屬類的名字。如果 obj
不是乙個物件則返回false。
note: 在 php 擴充套件庫中定義的類返回其原始定義的名字。在 php 4 中get_class()返回使用者定義的類名的小寫形式,但是在 php 5 中將返回類名定義時的名字,如同擴充套件庫中的類名一樣。
note: 自 php 5 起,如果在物件的方法中呼叫則 obj為可選項。
example#1 使用get_class()
<?php
class
foo
function
name()}
// create an object
$bar
= new
foo();
// external call
echo
"its name is "
, get_class
($bar
) ,
"/n"
;// internal call
$bar
->
name
();?>
上例將輸出:
its name is foomy name is foo
2.get_class_methods — 返回由類的方法名組成的陣列arrayget_class_methods(
mixed
$class_name
)
返回由 class_name
指定的類中定義的方法名所組成的陣列。如果出錯,則返回null。
example#1get_class_methods()示例
<?php
class
myclass
// method 1
function
myfunc1
()// method 2
function
myfunc2()}
$class_methods
= get_class_methods
('myclass'
);// or
$class_methods
= get_class_methods
(new
myclass
());
foreach (
$class_methods
as $method_name
) ?>
上例將輸出:
myclass
myfunc1
myfunc2
3.
get_class_vars — 返回由類的預設屬性組成的陣列
array
get_class_vars(
string
$class_name
)
返回由類的預設公有屬性組成的關聯陣列,此陣列的元素以 varname => value
的形式存在。
note: 在 php 4.2.0 之前,get_class_vars()不會包含未初始化的類變數。
example#1get_class_vars()示例
<?php
class
myclass
}$my_class
= new
myclass
();$class_vars
= get_class_vars
(get_class
($my_class
));foreach (
$class_vars
as $name
=>
$value
) ?>
上例將輸出:
// 在 php 4.2.0 之前var2 : xyz
var3 : 100
// 從 php 4.2.0 開始
var1 :
var2 : xyz
var3 : 100
初見PHP反射
什麼是反射?指在php執行狀態中,擴充套件分析php程式,匯出或提取出關於這個類的方法 屬性 引數 注釋等資訊。通俗來說就是獲取該類的資訊,至於你要獲取來幹嘛,這個就看你自己的需求了。下面是乙個小例子 class test public function del public function se...
php反射機制
php5 具有完整的反射api,新增對類 介面 函式 方法和擴充套件進行反向工程的能力。反射是什麼?它是指在php執行狀態中,擴充套件分析php程式,匯出或提取出關於類 方法 屬性 引數等的詳細資訊,包括注釋。這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為反射api。反射是操縱物件導向范型中元模...
php反射機制
php5新增了一項新的功能 reflection,這個功能使得phper可以reverse engineer class,inte ce,function,method and extension,通過php 就可以得到某object的所有資訊,並且可以和它互動。反射是什麼?它是指在php執行狀態中...