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

isset$costructor呼び出す前にを使用できますgetParameters。設定されていない場合、コンストラクターはありません。

于 2012-09-03T15:27:15.250 に答える