阅读量:103
在 PHP 中,使用 ReflectionClass 创建实例的方法如下:
- 首先,你需要获取要实例化的类的 ReflectionClass 对象。你可以通过传入类名作为参数来创建 ReflectionClass 对象。
$className = 'YourClassName';
$reflectionClass = new ReflectionClass($className);
- 然后,检查类是否有默认构造函数(即没有参数的构造函数)。如果有,你可以使用
newInstance()方法创建实例。
if ($reflectionClass->hasMethod('__construct')) {
$constructor = $reflectionClass->getMethod('__construct');
$constructor->invoke($instance);
} else {
$instance = $reflectionClass->newInstance();
}
这里是一个完整的示例:
class MyClass {
public function __construct() {
echo "MyClass constructor called!";
}
}
$className = 'MyClass';
$reflectionClass = new ReflectionClass($className);
if ($reflectionClass->hasMethod('__construct')) {
$constructor = $reflectionClass->getMethod('__construct');
$constructor->invoke($instance);
} else {
$instance = $reflectionClass->newInstance();
}
echo $instance;
这个示例将输出 “MyClass constructor called!”,表示构造函数已成功调用。