Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich PHP-Klassen dynamisch mithilfe von Strings instanziieren?

Wie kann ich PHP-Klassen dynamisch mithilfe von Strings instanziieren?

Linda Hamilton
Freigeben: 2024-12-04 04:23:09
Original
173 Leute haben es durchsucht

How Can I Instantiate PHP Classes Dynamically Using Strings?

Dynamische Klasseninstanziierung mit Strings in PHP

In PHP ist es möglich, eine Instanz einer Klasse mithilfe eines Strings zu erstellen, der die Klasse darstellt Name. Dadurch entfällt die Notwendigkeit langwieriger Switch-Anweisungen beim Umgang mit mehreren Klassen.

Betrachten Sie das folgende Beispiel:

class ClassOne {}
class ClassTwo {}

$str = 'One';
Nach dem Login kopieren

Anstatt eine Switch-Anweisung zu verwenden:

switch ($str) {
    case "One":
        $object = new ClassOne();
        break;
    case "Two":
        $object = new ClassTwo();
        break;
}
Nach dem Login kopieren

Sie können eine Instanz mithilfe einer Zeichenfolge wie folgt dynamisch erstellen:

$class = 'Class' . $str;
$object = new $class();
Nach dem Login kopieren

Diese Syntax erstellt den vollständigen Klassennamen (z. B. „ClassOne“) und instanziiert es. Wenn sich Ihre Klassen in Namespaces befinden, verwenden Sie den vollständig qualifizierten Namen:

$class = '\Foo\Bar\MyClass';
$instance = new $class();
Nach dem Login kopieren

PHP erweitert diese Fähigkeit auch auf Variablenfunktionen und -methoden:

$func = 'my_function';
$func(...$parameters); // Calls my_function() with parameters

$method = 'doStuff';
$object = new MyClass();
$object->$method(); // Calls Myclass->doStuff()
(new MyClass())->$method(); // Calls Myclass->doStuff() in one line
Nach dem Login kopieren

Während Sie Variablen mit Zeichenfolgen erstellen können Dies gilt als schlechte Praxis und sollte zugunsten der Verwendung von Arrays vermieden werden.

Das obige ist der detaillierte Inhalt vonWie kann ich PHP-Klassen dynamisch mithilfe von Strings instanziieren?. 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