1.示例:Yii框架php反射类的使用
//创建$class类的反射类实例对象
$reflection = new ReflectionClass($class);
//获取$class类的构造器对象
$constructor = $reflection->getConstructor();
if ($constructor !== null) {
//获取构造方法参数列表$constructor->getParameters()
foreach ($constructor->getParameters() as $param) {
//构造参数是否有可利用默认值
if ($param->isDefaultValueAvailable()) {
$dependencies[] = $param->getDefaultValue();
} else {
//获取参数的类名称
$c = $param->getClass();
$dependencies[] = Instance::of($c === null ? null : $c->getName());
}
}
}
$reflection->isInstantiable();//对象是否可实例化
$reflection->newInstanceArgs($dependencies);//实例化反射对象