ReflectionClass::newInstanceArgs
PHP Manual
PHP Manual»ReflectionClass»ReflectionClass::newInstanceArgs

ReflectionClass::newInstanceArgs

(PHP 5 >= 5.1.3, PHP 7, PHP 8)

ReflectionClass::newInstanceArgs — 指定した引数でクラスの新しいインスタンスを作成する

説明

public function ReflectionClass::newInstanceArgs(array $args = []): ?object

クラスの新しいインスタンスを作成します。指定した引数をクラスのコンストラクタに渡します。

パラメータ

args

クラスのコンストラクタに渡すパラメータを配列で指定します。

args のキーがすべて数値の場合、キーは無視され、 各要素は位置を指定した引数として順にコンストラクタに渡されます。

args のキーに文字列のものがある場合、 その要素は、キーを名前とする名前付き引数としてコンストラクタに渡されます。

args 内で数値のキーが文字列のキーより後に現れた場合、 または文字列のキーがコンストラクタのどのパラメータの名前とも一致しない場合、 Error がスローされます。

戻り値

クラスの新しいインスタンスを返します。 失敗した場合は null を返します。

エラー / 例外

コンストラクタが public でない場合は ReflectionException が発生します。

クラスにコンストラクタがないときに args を指定すると ReflectionException が発生します。

変更履歴

バージョン 説明
8.0.0 args のキーは、パラメータの名前として解釈されるようになりました。 これより前のバージョンでは、警告なく無視されていました。

例

例1 ReflectionClass::newInstanceArgs() の基本的な使用例

<?php
$class = new ReflectionClass('ReflectionFunction');
$instance = $class->newInstanceArgs(array('substr'));
var_dump($instance);
?>

上の例の出力は以下となります。

object(ReflectionFunction)#2 (1) {
  ["name"]=>
  string(6) "substr"
}

参考

To Top