クラスオブジェクトを作成し、そのパラメータを配列として渡したいと考えています。例えばクラスコンストラクタに配列をパラメータリストとして渡す
:
$array = array (
'param1' => 123,
'param1' => 456,
'param2' => 789
);
設定の配列リストに変換し、コンストラクタに渡す必要があります。
$a = new A();
クラスオブジェクトを作成し、そのパラメータを配列として渡したいと考えています。例えばクラスコンストラクタに配列をパラメータリストとして渡す
:
$array = array (
'param1' => 123,
'param1' => 456,
'param2' => 789
);
設定の配列リストに変換し、コンストラクタに渡す必要があります。
$a = new A();
call_user_func_arrayでhttp://php.net/call_user_func_array
<?php
class A {
public function __construct () {
print_r (func_get_args ()) ;
}
}
$A = new A();
$params = array ('param' => 'value' , 'p1' => 'val') ;
call_user_func_array (array ($A , '__construct') , $params) ;
することができます反射を使用する
<?php
class A {
public function __construct () {
print_r (func_get_args ()) ;
}
}
$reflection = new ReflectionClass('A');
$reflection->newInstanceArgs(array('a' , 'b')) ;
<?php
class A
{
public function __construct($var=array()) { print_r($var); }
}
$a=new A(array('foo','bar','baz'));
?>
コンストラクタは2回呼び出されますが、私はそれを必要としません。 – vvsh