免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
php反射類 ReflectionClass
什么是php反射類,顧名思義,可以理解為一個(gè)類的映射。
舉個(gè)例子:
class fuc { //定義一個(gè)類
static function ec() {
echo '我是一個(gè)類';
}
}
$class=new ReflectionClass('fuc'); //建立 fuc這個(gè)類的反射類
echo $class; //輸出這反射類
Class [ class A ] { @@ F:\phpweb\myPHP\test.php 23-30 - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [1] { Method [ public method __construct ] { @@ F:\phpweb\myPHP\test.php 26 - 29 } } }
$fuc=$class->newInstance();  //相當(dāng)于實(shí)例化 fuc 類
$fuc->ec(); //執(zhí)行 fuc 里的方法ec
/*最后輸出:我是一個(gè)類*/
其中還有一些更高級的用法
$ec=$class->getmethod('ec');  //獲取fuc 類中的ec方法
$fuc=$class->newInstance();  //實(shí)例化
$ec->invoke($fuc);      //執(zhí)行ec 方法
上面的過程很熟悉吧。其實(shí)和調(diào)用對象的方法類似
只不過這里是反著來的,方法在前,對象在后
舉例
try{
//如果存在控制器名字的類
if(class_exists($this->getController())) {
//利用反射api構(gòu)造一個(gè)控制器類對應(yīng)的反射類
$rc = new ReflectionClass($this->getController());
//如果該類實(shí)現(xiàn) 了IController接口
if($rc->implementsInterface('IController')) {
//該類擁有解析后的action字符串所指向的方法名
if($rc->hasMethod($this->getAction())) {
//構(gòu)造一個(gè)控制器類的實(shí)例
$controller = $rc->newInstance();
//獲取該類$action參數(shù)所指向的方法對象
$method = $rc->getMethod($this->getAction());
//反射類方法對象的調(diào)用方式:
$method->invoke($controller);
} else {
//以下為可能拋出異常
throw new Exception("Action");
}
} else {
throw new Exception("Interface");
}
} else {
throw new Exception("Controller");
}
}catch(exception $e)
{
echo $e;
}
轉(zhuǎn)載于:http://blog.csdn.net/21aspnet/article/details/6952432
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PHP反射類ReflectionClass和ReflectionObject的使用方法
PHP: Reflection - Manual
PHP類的靜態(tài)(static)方法和靜態(tài)(static)變量使用介紹
了解下PHP的Reflection反射機(jī)制
第121講 DirectX11Frame(1)
Java反射機(jī)制詳解
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服