我试图从$object
的类中获取构造函数的参数:
$reflectionClass = new \ReflectionClass($object);
$constructor = $reflectionClass->getConstructor();
$constructor_params = $constructor -> getParameters();
我得到的错误:
Fatal error: Call to a member function getParameters() on a non-object
事实证明它没有构造函数。我怎样才能检查它是否先发生?
答案 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
。如果没有设置,则没有构造函数。