2016-05-22 12 views
1

Ich habe 2 Variablen:PHP - Call-Klasse wie call_user_func

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

Und ich möchte eine Klasse wie die Funktion call_user_func() aufzurufen, tun mit Funktionen

dh:

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

Antwort

2

Eine Option wäre die Verwendung des Array-Argument-Entpackens, wenn Sie PHP> = 5.6:

$classObject = new $class(...$params); 
ausführen Ein weiterer

wäre Reflection

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

call_user_func_array verwenden Hier können Sie die Klassenmethoden aufrufen.

<?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

Ihre Antwort ist richtig, aber die Mark Baker Antwort ist OOP –

+0

@ ClémentLaffitte vereinbart. –

Verwandte Themen