Heim  >  Artikel  >  Backend-Entwicklung  >  So erstellen Sie ein undefiniertes PHP-Klassenobjekt

So erstellen Sie ein undefiniertes PHP-Klassenobjekt

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-06-25 16:14:031613Durchsuche

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);

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);

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);

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen