PHP中的反射机制

 PHP   admin   阅读(139)   2019-07-07 21:42:02 

定义一个名叫A类的

class A{ /** * 获取ip * @return mixed */ public function getHostIp($ip ='') { return file_get_contents('http://ip.taobao.com/service/getIpInfo.php?ip='.$ip); }}

$a = new \A();
$lists = new \ReflectionClass($a);
// print_r($lists->getMethods()); //反射得到该类方法
// print_r($lists->getDocComment()); //反射得到类中的注释

$obj = new \A();
$obj2 = new \ReflectionClass($obj);
$methods = $obj2->newInstance(); //通过反射机制new A类
$method = $obj2->getMethod('getHostIp'); // 获取gethostip
echo $method->invokeArgs($methods,['127.0.0.1']); //传递参数

$news = new \A();
$obj = new \ReflectionClass($news);
$obj = $obj->getMethod('getHostIp');
print_r($obj->isPublic()); //检测是否公共方法
print_r($obj->isPrivate()); //检测是否私有方法
print_r($obj->isProtected());//检测受保护的方法
print_r($obj->isStatic()); //检测是否静态方法

$ext = new \ReflectionExtension('mysqli');
var_dump($ext->info()); //得到扩展信息




我要评论



展示评论