In PHP kann es vorkommen, dass Sie eine Klasse aus dem Wert einer Variablen instanziieren müssen. Lassen Sie uns dies anhand eines Beispiels veranschaulichen:
$var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()');
Diese Methode versucht, eine Instanz der durch die Variable $var angegebenen Klasse zu erstellen. PHP unterstützt diese Syntax jedoch nicht nativ.
Um dies ohne die Verwendung von eval() zu erreichen, können Sie eine Variable verwenden, um den Klassennamen zu speichern:
$classname = $var . 'Class'; // e.g. $classname = 'barClass' $bar = new $classname('var for __construct()');
Diese Technik wird häufig im Factory-Muster verwendet, das dazu dient, die Klassenerstellung zu zentralisieren und vom Erstellungsprozess zu entkoppeln. In solchen Szenarien würde eine Factory-Klasse die gewünschten Klasseninstanzen dynamisch basierend auf der Konfiguration oder anderen Parametern erstellen.
Weitere Informationen zu dynamischen Sprachfunktionen und Namespaces finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie kann ich eine Klasse aus einer Variablen in PHP instanziieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!