2

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

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

我得到的错误:

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

更新:

事实证明它没有构造函数。我如何检查它是否首先?

4

2 回答 2

0

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

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

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

if ($reflectionClass->isInstantiable()) {
    // class can be instantiated with new XYZ()
}
于 2012-09-03T15:27:14.930 回答
0

您可以在调用之前使用isseton 。如果未设置,则没有构造函数。$costructorgetParameters

于 2012-09-03T15:27:15.250 回答