php 5 具有完整的反射 api,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 api 提供了方法来取出函数、类和方法中的文档注释。
tp框架中反射的使用
1、reflectionclass::__construct — 构造一个 reflectionclass 类
public reflectionclass::__construct ( mixed $argument )
2、reflectionclass::newinstanceargs — 从给出的参数创建一个新的类实例,给出的参数将传递到类的构造函数。
public object reflectionclass::newinstanceargs ([ array $args ] )
3、/thinkphp/library/think/container.php
/** * 调用反射执行类的实例化 支持依赖注入 * @access public * @param string $class 类名 * @param array $vars 参数 * @return mixed */ public function invokeclass($class, $vars = []) { try { $reflect = new reflectionclass($class); $constructor = $reflect->getconstructor(); //用于支持依赖的注入 $args = $constructor ? $this->bindparams($constructor, $vars) : []; return $reflect->newinstanceargs($args); } catch (reflectionexception $e) { throw new classnotfoundexception('class not exists: ' . $class, $class); } }
本篇文章简单的讲述了php中的反射,大家如果还是不太了解,就自己练练写写!
以上就是php中的反射详细讲述的详细内容。
