从对象类中获取构造函数的参数

时间:2012-09-03 15:18:53

标签: php class object reflection constructor

我试图从$object的类中获取构造函数的参数:

$reflectionClass = new \ReflectionClass($object);
$constructor = $reflectionClass->getConstructor();
$constructor_params = $constructor -> getParameters();

我得到的错误:

Fatal error: Call to a member function getParameters() on a non-object

更新

事实证明它没有构造函数。我怎样才能检查它是否先发生?

2 个答案:

答案 0 :(得分:0)

检查它是否有一个构造函数:

if (null !== ($constructor = $reflectionClass->getConstructor())) {
    // we have a constructor
}

但是,这并不一定意味着您可以实例化一个对象(例如,当构造函数是私有的时):

if ($reflectionClass->isInstantiable()) {
    // class can be instantiated with new XYZ()
}

答案 1 :(得分:0)

在致电$costructor之前,您可以在getParameters上使用isset。如果没有设置,则没有构造函数。