我想创建一个类对象并将其参数作为数组传递。
例如:
$array = array (
'param1' => 123,
'param1' => 456,
'param2' => 789
);
必须转换为设置的数组列表并传递给构造函数:
$a = new A();
答案 0 :(得分:1)
使用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 ) ;
答案 1 :(得分:0)
您可以使用反射
<?php
class A {
public function __construct ( ) {
print_r ( func_get_args ( ) ) ;
}
}
$reflection = new ReflectionClass('A');
$reflection->newInstanceArgs(array( 'a' , 'b' )) ;
答案 2 :(得分:0)
<?php
class A
{
public function __construct( $var=array() ) { print_r( $var ); }
}
$a=new A( array( 'foo','bar','baz' ) );
?>