So erstellen Sie ein undefiniertes PHP-Klassenobjekt

醉折花枝作酒筹
Freigeben: 2023-03-10 22:00:02
nach vorne
1608 Leute haben es durchsucht

Wenn in PHP die Klasse nicht im Voraus vorbereitet ist und Sie ein Objekt einer undefinierten Klasse erstellen müssen, können wir die folgenden drei Methoden verwenden: 1. „new stdClass()“, „new class{}(object)“ und „( Objekt)[]“. Der Herausgeber wird es im Folgenden ausführlich vorstellen.

So erstellen Sie ein undefiniertes PHP-Klassenobjekt

Wenn in PHP die Klasse nicht im Voraus vorbereitet ist und Sie ein Objekt einer undefinierten Klasse erstellen müssen, können wir die folgenden drei Methoden verwenden:

  • new stdClass()

  • new class{ }

  • (object)[]

First ist stdClass. Diese Klasse ist eine leere Klassenvorlage und das intern reservierte Schlüsselwort und Klassenname von PHP. Man kann es sich als die Object-Basisklasse in Java vorstellen. In Java erben alle Klassen natürlich von der Object-Basisklasse. Die stdClass in PHP ist eine völlig leere Klassenvorlage. Ihre eigene neu erstellte Klasse ist keine Unterklasse davon. Sie können diese Klassenvorlage jedoch verwenden, um ein Objekt einer eigenen undefinierten Klasse zu erstellen. Natürlich befindet sich in diesem Objekt nichts.

 $a = new stdClass();
var_dump($a);
Nach dem Login kopieren

Was ist mit der neuen Klasse{}? Diejenigen, die über einen bestimmten Zeitraum entwickelt haben und mit Front-End-JS und anderen dynamischen Sprachen in Kontakt gekommen sind, sollten erraten können, dass es sich um eine anonyme Klasse handelt. Im Allgemeinen sehr häufig bei Parameterobjekten. Die von ihm erstellten Objekte können Attributmethoden haben.

 $b = new class{
    public $p = 1;
};
var_dump($b);
Nach dem Login kopieren

Das Letzte, was wir sehen, ist die Verwendung eines Arrays, das in ein Objekt umgewandelt wird, um ein Objekt zu generieren.

 $c = (object)[
    'p' => 1
];
var_dump($c);
Nach dem Login kopieren

Offensichtlich ist das durch Array-Zwang erzeugte Objekt vom gleichen Typ wie das erste Objekt und kann Attribute haben oder nicht. Allerdings kann es keine Methoden annehmen.

Die durch die Array-Zwangsmethode generierten Objekte sind sehr intuitiv und leicht zu verstehen. Wenn es nur um die Kapselung von Attributobjekten geht, ist die Verwendung dieser Methode eleganter und komfortabler. Mithilfe anonymer Klassen kann eine komplexe Objektgenerierung generiert werden. Für einige Objekte, die nur Platzhalter benötigen, können Sie die Methode stdClass verwenden. Natürlich ist die Verwendung eines leeren Arrays auch sehr praktisch.

Es ist zu beachten, dass der Array-Zwang den Regeln der Typkonvertierung entsprechen muss. Zum Beispiel das Problem der numerischen Indizes.

In der täglichen Entwicklung verwenden wir diese Funktionen häufig, wenn wir einige Schnittstellen oder Datenbank-ORM-Frameworks verwenden. Beispielsweise erfordern das Einfügen und Ändern einiger ORM-Frameworks den Eingang von Objekten, die nur Attribute enthalten. Zu diesem Zeitpunkt können Sie die obige Methode verwenden, um Objekte flexibel zu generieren, ohne die Klassenvorlage vollständig zu definieren.

Testcode:

https://github.com/zhangyue0503/dev-blog/blob/master/php/201910/source/%E4%BC%98%E9%9B%85%E5%9C%B0%E5%88%9B%E5%BB%BA%E6%9C%AA%E5%AE%9A%E4%B9%89PHP%E5%AF%B9%E8%B1%A1.php
Nach dem Login kopieren

Empfohlenes Lernen: php-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo erstellen Sie ein undefiniertes PHP-Klassenobjekt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage