PHP中的reflection反射機制測試例子

2022-10-06 05:51:07 字數 3300 閱讀 2471

j**a類反射應用得非常廣泛幾乎是所有框架的最核心部分,php程式設計師似乎從不關心反射。嘗試著用j**a的思想去理解php的反射,跟j**a基本上基本一致。參考了php手冊:

reflecttest.php:

<?php  

class reflecttest

public function __construct($userid,$username,$password)

/***

* @return the $userid

*/public function getuserid()

/***

* @return the $username

*/public function getusername()

/***

* @return the $password

*/public function getpassword()

/***

&nbs程式設計客棧p;    * @return the $email

*/public function getemail()

/***

* @return the $qq

*/public function getqq()

/***

* @return the $logintimes

*/public function getlogintimes()

/***

* @param field_type $userid           

*/public function setuserid($userid)

/***

* @param field_type $username         

*/public function setusername($username)

/***

* @param field_type $password         

*/public function setpassword($password)

/***

* @param field_type $email        

*/public function setemail($email)

/***

* @param field_type $qq           

*/public function setqq($qq)

/***

* @param field_type $logintimes           

*/&nbs程式設計客棧p;  public function setlogintimes($logintimes)

}?>

test.php:

<?php require_once 'reflecttest.php';

$ref = new reflecttest("1", "admin", "admin888");//例項化reflecttest

echo "

"; $field = $class->getproperties();

foreach($field as $f)

echo "

"; foreach($field as $f)

$method = $class->getmethods();//獲取reflecttest所有方法

echo "

"; foreach($method as $m)

echo "

"; foreach($method as $m)

} echo "

"; $qq=$class->getmethod('getqq');//獲取getqq方法

echo "getqq:".$qq->invoke($instance)."

";//獲取成員變數qq的值

echo "jb51.net";

?>

請求http://localhost/php/test/test.php輸出結果:

reflecttest init.

userid:1

username:admin

password:admin888

field:

userid

username

password

email

qqlogintimes

get fields doccomment:

/** * 使用者id */

/** * 使用者名稱 */

/** * 使用者密碼 */

/** * 使用者郵箱 */

/** * 使用者qq號碼 */

/** * 登陸次數 */

get methods doccomment:

/** * * @return the $userid */

/** * * @return the $username */

/** * * @return the $password */

/** * * @return the $email */

/** * * @return the $qq */

/** * * @return the $logintimes */

/** * * @param field_type $userid */

/** * * @param field_type $username */

/** * * @param field_type $password */

/** * * @param field_type $email */

/** * * @param field_type $qq */

/** * * @param field_type $logintimes */

get methods:

reflecttest=

__construct=

getuserid=123

getusername=root

getpassword=123456

getemail=

getqq=

getlogintimes=

setuserid=

setusername=

setpassword=

setemail=

setqq=

setlogintimes=

invoke (set/get)qq result:

getqq:441637262

jb51.net

本文標題: php中的reflection反射機制測試例子

本文位址:

PHP 反射機制Reflection

php 反射機制reflection 簡介php reflection api是php5才有的新功能,它是用來匯出或提取出關於類 方法 屬性 引數等的詳細資訊,包括注釋。class reflection inte ce reflector class reflectionexception exte...

對Reflection的一點改進

之前實現的那個reflection沒有把光照加進去,使得不是很逼真,與真實的景象有出入。只要我們把光源也想象 為乙個物體,在鏡子中也會有映象,也會使virtual object產生光照效果。這裡我採用的是聚光燈,對其的屬性設定如下 glfloat lightamb ambient light glf...

php中mysql函式 PHP中的MySQL函式

本篇主要介紹採用php語言如何連線mysql資料庫。首先需要檢測服務mysql是否開啟成功。檢視phpinfo 函式 使用php運算元據庫的步驟 一 連線資料庫伺服器 二 選擇資料庫 mysql select db 資料庫名 三 設定編碼格式 mysql set charset utf 8 四 資料...