Heim > Backend-Entwicklung > PHP-Tutorial > Wie instanziiere ich dynamisch eine PHP-Klasse aus einer Variablen?

Wie instanziiere ich dynamisch eine PHP-Klasse aus einer Variablen?

Mary-Kate Olsen
Freigeben: 2024-11-23 11:13:04
Original
359 Leute haben es durchsucht

How to Dynamically Instantiate a PHP Class from a Variable?

Eine PHP-Klasse dynamisch aus einer Variablen instanziieren

In PHP ist es möglich, eine Klasse dynamisch zu instanziieren, indem eine String-Variable verwendet wird, die die Klasse enthält Name. Dies kann erreicht werden, indem zuerst der Klassenname einer neuen Variablen zugewiesen wird und dann der Dollarzeichen-Operator ($) verwendet wird, um die Klasse zu instanziieren.

Beispiel:

$var = 'bar';
$classname = $var . 'Class';
$bar = new $classname('argument for constructor');
Nach dem Login kopieren

Dadurch wird eine neue Instanz der barClass-Klasse erstellt und das Argument „Argument für Konstruktor“ an sie übergeben Konstruktor.

Verwenden eines Factory-Musters:

Diese Technik wird häufig im Kontext des Factory-Musters verwendet, bei dem eine Factory-Klasse für die Erstellung und Rückgabe von Instanzen von verantwortlich ist verschiedene Klassen basierend auf einem bestimmten Parameter. Zum Beispiel:

class ClassFactory {
    public static function create($className, $args = []) {
        $instance = new $className(...$args);
        return $instance;
    }
}
Nach dem Login kopieren

Diese Fabrikklasse kann wie folgt verwendet werden:

$instance = ClassFactory::create('barClass', ['argument for constructor']);
Nach dem Login kopieren

Zusätzliche Hinweise:

Bei Verwendung dieser Technik Es ist wichtig sicherzustellen, dass die Variable, die den Klassennamen enthält, ordnungsgemäß bereinigt wird, um eine willkürliche Klasseninstanziierung zu verhindern. Dies kann mithilfe von Funktionen wie preg_replace() zur Validierung des Klassennamens erreicht werden.

Das obige ist der detaillierte Inhalt vonWie instanziiere ich dynamisch eine PHP-Klasse aus einer Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage