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 zu entkoppeln aus dem Entstehungsprozess. 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 im Folgenden Ressourcen:
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3