本文實例講述了PHP類的反射用法。分享給大家供大家參考。具體實現方法如下:
該例實現對於每個頻道獲取相應的類來執行相應的操作。具體如下:
復制代碼 代碼如下:foreach($this->chs as $ch) {
$className = $this->chsMap[$ch];
if($className) { // 如果是合法的類名
// 獲取反射類
$class = new ReflectionClass($className);
// 獲取類的方法
$recd = $class->getmethod('exeRecd');
// 生成類的實例
$instance = $class->newInstance($this->qq, $this->ip);
// 執行方法
$result[$ch] = $recd->invoke($instance);
}
}
希望本文所述對大家的PHP程序設計有所幫助。
得到一個對象的類型,使用gettype()函數:
<?phpecho gettype(1); // 輸出integerecho gettype(array()); // 輸出array
得到一個對象是哪個類的實例,使用get_class()函數:
<?php$o = new stdClass();echo get_class(); // 輸出stdClass
得到一個類或對象的方法和屬性,要使用反射:
<?phpclass MyClass { public $var; public function foo() {}}$ref = new ReflectionClass('MyClass');$ref->getProperties(); // 會返回一組對象,用法參考PHP手冊$ref->getMethods(); // 會返回一組對象,用法參考PHP手冊$obj = new MyClass();$ref = new ReflectionObject($obj);$ref->getProperties();$ref->getMethods();
<?php
class myclass
{
function showerror($msg)
{
$msg=trim($msg);
echo "<script language='javascript'>alert('$msg');";
echo "history.back();</script>";
exit;
}
}
?>
這是我寫的一個出錯提示並返回歷史頁面的類.用類的好處就是節省重復寫代碼的時間,也為編程的二次開發省了不少時間.
使用類之前先要創建類的實例
$lei=new myclass();這樣就實例化了
然後用
$lei->showerror($mess);這樣就可以調用類中的函數和成員變量了