2011-12-13 150 views
0

我想創建一個類對象並將其參數作爲數組傳遞。將數組作爲參數列表傳遞給類構造器

例如:

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

必須轉化爲設置一個數組列表,並傳遞給構造:

$a = new A(); 

回答

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) ; 
+0

構造函數被調用兩次,但我不需要它。 – vvsh 2011-12-13 22:17:38

0

你可以使用反射

<?php 
     class A { 

       public function __construct () { 
        print_r (func_get_args ()) ; 
       } 

     } 

     $reflection = new ReflectionClass('A'); 
     $reflection->newInstanceArgs(array('a' , 'b')) ; 
0
<?php 
class A 
{ 
    public function __construct($var=array()) { print_r($var); } 
} 

$a=new A(array('foo','bar','baz')); 
?> 
相關問題