PHP反射机制
2019-12-19 本文已影响0人
皮蛋馅儿
这里创建一个测试类
<?php
class Test
{
public $a;
private $b;
public static $c;
public function aaa($a, $b)
{
echo 'function 1: ' . $a . '|' . $b;
}
protected function bbb()
{
echo 'function 2';
}
}
$obj = new \Test();
// 反射类
$relObj = new \ReflectionClass($obj);
// 获取类里面所有的方法列表
$methods = $relObj->getMethods();
foreach ($methods as $method) {
vdd($method);
}
返回结果:
![](https://img.haomeiwen.com/i1638771/613c61dab4a756db.png)
// 获取类里面所有的属性
$properties = $relObj->getProperties();
vdd($properties);
返回结果:
![](https://img.haomeiwen.com/i1638771/a88f72dcff559dd2.png)
// 判断是否公共方法
$method = new \ReflectionMethod($obj, 'aaa');
if ($method->isPublic()) {
echo 'aaa是公共方法';
}
vdd($method->getParameters());
vdd($method->getNumberOfParameters());
返回结果:
![](https://img.haomeiwen.com/i1638771/17623ba573338780.png)
加我微信公众号【皮蛋馅儿】,一起学习哦~