php反射函式

2021-05-22 22:55:17 字數 2690 閱讀 7748

最常用的幾個個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 foo

my name is foo

2.get_class_methods — 返回由類的方法名組成的陣列
array

get_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執行狀態中...