Heim  >  Artikel  >  Backend-Entwicklung  >  Wozu dient die stdClass-Klasse in PHP?

Wozu dient die stdClass-Klasse in PHP?

怪我咯
怪我咯Original
2017-07-12 11:34:501428Durchsuche

Wenn der PHP-Kernel einen Modulinitialisierungsvorgang durchführt, wird diese Funktion automatisch geladen. Auf diese Weise wird auch der Registrierungsvorgang der stdClass-Klasse ausgeführt. Die stdClass-Klasse ist eine Klasse ohne Mitgliedsvariablen und ohne Mitgliedsmethoden. Alle seine magischen Methoden, übergeordneten Klassen, Schnittstellen usw. werden während der Initialisierung auf NULL gesetzt. Da wir in PHP keine Methoden dynamisch zu einer Klasse hinzufügen können, kann diese Klasse nur zur Verarbeitung dynamischer -Attribute verwendet werden, was ebenfalls häufig verwendet wird. Daher löst die folgende Methode den eingestellten Interceptor nicht aus

Der Code lautet wie folgt:

$user = new stdClass();
$user->name = 'gouki';
Wofür wird dieser Code verwendet?

Öffnen Sie das Handbuch und
suchen Sie nach stdClass. Sie werden feststellen, dass es im Handbuch fast keine Einführung gibt. Wenn Sie erneut bei Google suchen, werden Sie fast alle englischen Erklärungen sehen. Tatsächlich wurde stdClass erst in PHP5 populär. Und stdClass ist auch eine reservierte Klasse von Zend. Es scheint keine andere Wirkung zu haben. Es gibt auch fast keine Erklärung.
Oder wir können es so verstehen: stdClass ist eine Basisklasse von PHP
erben diese Klasse, sodass sie jederzeit neu sein kann und diese Variable zu einer Objekt. Gleichzeitig weist diese Basisklasse eine Besonderheit auf, nämlich dass sie über keine Methoden verfügt. Immer wenn eine Variable von new stdClass() verwendet wird, ist es unmöglich, $a->test() zu verwenden. Oder wir können es so verstehen: Gerade aufgrund der Einzigartigkeit des
-Objekts
von PHP5 ist das Objekt bei jedem Aufruf vom Referenzadresstyp und verbraucht daher weniger Ressourcen. Wenn ihm in anderen Seiten Werte zugewiesen werden, wird er direkt geändert, anstatt auf eine Kopie zu verweisen. Zum Beispiel:

Der Code lautet wie folgt:

In der PHP4-Ära verbraucht ein solcher Code Systemressourcen. Denn:
$user = new stdClass();
$user->name = 'gouki';
$myUser = $user;
$myUser->name = 'flypig';
$myUser = $user;

Dadurch wird eine Kopie erstellt. Daher wird es in PHP4 immer so verwendet:


Der Code lautet wie folgt:

Manche Leute sagen, warum nicht ein Array verwenden? Wären Arrays nicht praktischer? Und für schwach typisierte Programme wie PHP dürfte die Verwendung von Arrays am praktischsten sein.
$myUser = & $user;
In der Tat. Arrays sollten in Programmen am bequemsten zu verwenden sein. Allerdings wird jedes Mal, wenn auf das Array verwiesen wird ($a = $b), tatsächlich eine Kopie erstellt gehört) Die Leute sagen es, ich habe es nicht getestet ... und ich weiß nicht, wie ich es testen soll. Wenn es jemand weiß, sagen Sie es mir bitte, danke)

Es gibt jedoch auch ein Funktionsarrayobjekt im Standardklassenbibliothek von SPL, die ein Array direkt in ein Objekt konvertieren kann. Dies ist auch eine gute Idee.

Das obige ist der detaillierte Inhalt vonWozu dient die stdClass-Klasse in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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