Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erklärung der Verwendung von stdClass in PHP

Detaillierte Erklärung der Verwendung von stdClass in PHP

怪我咯
怪我咯Original
2017-07-12 11:32:569540Durchsuche

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 Set-Interceptor nicht aus.

stdclass kann als Basisklasse verwendet werden. Sein größtes Merkmal besteht darin, dass (seine abgeleiteten Klassen) automatisch Mitgliedsvariablen hinzufügen können, ohne sie bei der Definition anzugeben.

Alle

PHP-Variablen sind Instanzen von stdClass.

Verwendung:

1. Verwenden Sie stdclass:

$andy = array();
$andy = (object)$andy;
$andy->a = 1;
$andy->b = 2;
$andy->c = 3;
Auf diese Weise werden die Mengen a, b und c in stdclass gefüllt. Das erspart Ärger, denn zum Erstellen eines leeren Objekts ist $andy = new Andy; erforderlich und es muss zuerst eine Klasse Andy{} vorhanden sein. Ein weiteres Beispiel:

<?php
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
gibt Folgendes aus: stdClass Object ( [id] => 11 [username] => me ).

Oft wird diese Methode verwendet, um die Verwendung von
Array zu ersetzen, was lediglich eine Änderung der Syntax darstellt.

2. Lesen:

stdClass Object
(
  [getWeatherbyCityNameResult] => stdClass Object
    (
      [string] => Array
        (
          [0] => 四川
          [1] => 成都
          [2] => 56294
          [3] => 56294.jpg
          [4] => 2009-5-17 13:52:08
          [5] => 26℃/19℃
          [6] => 5月17日 阴转阵雨
        )
    )
)
Tatsächlich ähnelt es einem Array, aber die Zugriffsmethode ändert sich im Allgemeinen ein wenig Arrays.

Für diese Art von stdClass, wie im obigen Beispiel, kann $weather->getWeatherbyCityNameResult->string[0] wie folgt auf das Attribut zugreifen, und das Ergebnis ist „Sichuan“.

3. Instanziierung, neu.

Vergleichen Sie diese beiden Codes:

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
gibt Folgendes aus: stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [Benutzername] => ich ).

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>
gibt Folgendes aus: stdClass Object ( [id] => 11 [username] => me ) .

Es stellt sich heraus, dass nach der Instanziierung mit new das vorherige Array gelöscht wird und nur die später hinzugefügten übrig bleiben. Wenn es nicht instanziiert wird, behält stdClass alle Elemente bei.

Es ist zu beachten, dass bei der Verwendung von global und statisch in einer Funktion auf die neue stdclass verwiesen wird und die Verwendung von Referenzen vermieden wird, sondern direkt auf die neue stdclass .

Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung der Verwendung von stdClass 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