2016-05-22 12 views
1

のようなクラスを呼び出します。PHP - 私は2つの変数持ってcall_user_func

$class : contains the name of the class 
$params : contains the parameters to initialize the class like ["key1" => "value1", "key2" => "value2"] 

をそして、私は、関数call_user_func(のようなクラスを呼びたい)機能

すなわちで行います

$classObject = call_class($class, $params); 
// Do the same that: 
$classObject = new $class("value1", "value2"); 

答えて

2

$classObject = new $class(...$params); 
:あなたはPHP> = 5.6を実行している場合は、1つの選択肢は、開梱配列引数を使用することです

もう一つは、クラスのメソッドを呼び出すことができますReflection

$reflection = new ReflectionClass($class); 
$classObject = $reflection->newInstanceArgs($params); 
1

call_user_func_arrayを使用することです。

<?php 

class Foo { 
    public function bar($param1, $param2) { 
    echo $param1.$param2; 
    } 
} 

$className = 'Foo'; 

call_user_func_array(array(new $className, 'bar'), array('Hello', 'World !')); 
+1

あなたの答えは正しいですが、Mark Ba​​kerの回答はOOP –

+0

@ClémentLaffitteagreeです。 –

関連する問題