類內容php
class MyClass { const myconst1 = 100000001; const myconst2 = [ 1 => '開始時間', 2 => '結束時間', ]; public $title = '中國移動'; public $city = '湖南長沙'; static $type = [ 1 => '男', 2 => '女', ]; static $create_time = 1530000000; public function actionIndex() { } public function actionAdd() { } } $MyClass = new MyClass(); # 實例化類 $rc = new ReflectionClass('MyClass'); # 實例化自定義類的ReflectionClass信息
獲取靜態成員屬性數組
/** * 獲取靜態成員屬性 * static成員可以限制外部的訪問,由於static的成員是屬於類的,是不屬於任何對象實例,是在類第一次被加載的時候分配的空間,其餘類是沒法訪問的,只對類的實例共享,能必定程度對類該成員造成保護 * 在類的外部不須要實例而直接使用類名就能夠訪問靜態的成員, 固然,實例化後也可訪問 */ echo MyClass::$create_time; echo $MyClass::$create_time;
獲取靜態成員屬性的name->value函數
/** * 獲取靜態成員屬性的name->value */ $v = $rc->getStaticProperties(); # 獲取靜態(static)屬性 print_r($v);
獲取函數(方法體)spa
/** * 獲取函數(方法體) */ $v = $rc->getMethods(); # 獲取方法的數組 print_r($v); foreach ($v as $value) { echo $value->getName(); echo "\n\r"; }
獲取屬性.net
/** * 獲取屬性 */ $v = $rc->getProperties(); # 獲取一組屬性 print_r($v); # 獲取屬性的name與值 foreach ($v as $value) { $value = $value->getName(); # 獲取對象name if (isset($MyClass::$$value)) { # 靜態成員屬性 print_r([$value => $MyClass::$$value]); } elseif (isset($MyClass->$value)) { # 成員屬性 print_r([$value => $MyClass->$value]); } }
獲取自定義常量code
/** * 獲取自定義常量 */ echo MyClass::myconst1;
遍歷自定義常量對象
/** * 遍歷自定義常量 */ $v = $rc->getConstants(); # 獲取一組常量 print_r($v);