将数组作为params列表传递给类构造函数

时间:2011-12-13 21:41:56

标签: php class object

我想创建一个类对象并将其参数作为数组传递。

例如:

$array = array (
     'param1' => 123,
     'param1' => 456,
     'param2' => 789
);

必须转换为设置的数组列表并传递给构造函数:

$a = new A();

3 个答案:

答案 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' ) );
?>