(PHP 5 >= 5.1.3, PHP 7, PHP 8)
ReflectionClass::newInstanceArgs — 指定した引数でクラスの新しいインスタンスを作成する
クラスの新しいインスタンスを作成します。指定した引数をクラスのコンストラクタに渡します。
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"
}