//根据一个对象,知道它所属的类,拥有哪些方法,属性,注释等
class User{
public $age = 11;
/**
* 获取所有用户数据
*/
public function getUsers(){
$users = [];
for($i=0;$i<=20;$i++){
$user=[
'user_id'=>rand(1000,9999),
'class'=>'no. '.rand(100,999),
'name'=>'username_'.rand(2999,99999),
'join_time'=>date('Y-m-d H:i:s',time()),
];
$users[] = $user;
}
return $users;
}
}
$userMod = new User();
$flc = new \ReflectionClass($userMod);
//相当于实例化User自己
$userMod2 = $flc->newInstance();
echo $userMod2->age;
//类中所有方法 getUsers
$result = $flc->getMethods();
foreach($flc->getMethods() as $method){
//dump($method->getDocComment()); //方法的注释
}
// 1- 调用方法getUsers
$getUsers = $flc->getMethod('getUsers');
//dump($getUsers->invokeArgs($userMod2,[]));
// 2- 调用方法 getUsers
$getUsers = new \ReflectionMethod($userMod2,'getUsers');
// dump($getUsers->invoke($userMod2));
// die;
$result = $flc->getProperties(); //类中属性 age
dump($result);
die;