Maison  >  Article  >  développement back-end  >  Explication détaillée de l'application du code d'instance stdClass en php

Explication détaillée de l'application du code d'instance stdClass en php

伊谢尔伦
伊谢尔伦original
2017-06-30 10:12:171027parcourir

Cet article présente principalement l'utilisation de stdClass en php. Il analyse les fonctions et les techniques d'utilisation de stdClass avec des exemples. Il a une certaine valeur de référence.

Cet article analyse stdClass. en php avec des exemples d'utilisation. Partagez-le avec tout le monde pour votre référence. L'analyse spécifique est la suivante :

stdclass est l'une des nombreuses classes prédéfinies en PHP et est une classe réservée par zent. En fait, il s'agit d'une classe de base fournie par PHP, qui est une classe vide sans rien dedans. Nous pouvons l'instancier, puis définir une série de variables et y transmettre des variables (de nombreux programmeurs PHP l'utilisent pour transmettre les valeurs ​d'une série de variables sans prendre la peine de créer votre propre classe). Cependant, comme les méthodes ne peuvent pas être ajoutées après l'instanciation, seuls les attributs peuvent être transmis. Car une fois qu’une classe est instanciée, les méthodes ne peuvent plus être ajoutées.

stdclass peut être utilisé comme classe de base. Sa plus grande fonctionnalité est que (ses classes dérivées) peuvent ajouter automatiquement des variables membres sans avoir besoin de les spécifier lors de la définition.

Toutes les variables php sont des instances de stdClass.

Utilisation :

1. Utilisez stdclass :

$andy = array();
$andy = (object)$andy;
$andy->a = 1;
$andy->b = 2;
$andy->c = 3;

De cette façon, les quantités a, b et c sont renseignées dans stdclass. Cela évite des problèmes, car pour créer un objet vide, il faut $andy = new Andy; et il doit d'abord y avoir une classe Andy{}. Autre exemple :

<?php
$a = new stdClass();
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>

affichera : stdClass Object ( [id] => 11 [username] => me ).
Souvent, cette méthode est utilisée pour remplacer l'utilisation de array, qui n'est qu'un changement de syntaxe.

2. Lecture :

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日 阴转阵雨
        )
    )
)

En fait, c'est similaire à array, mais la méthode d'accès change un peu Nous sommes généralement habitués à utiliser array['key'] pour accéder. tableaux.
Pour ce type de stdClass, comme dans l'exemple ci-dessus, $weather->getWeatherbyCityNameResult->string[0] peut accéder à l'attribut comme ceci, et le résultat sera "Sichuan".

3. Instanciation, nouveau.

Comparez ces deux codes :

<?php  
$a = array(1=>2,2=>3);
$a = (object)$a;
$a->id = &#39;11 &#39;;
$a->username = &#39;me&#39;;
print_r($a);
?>

affichera : stdClass Object ( [1] => 2 [2] => 3 [id] => 11 [username ] => moi).

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

affichera : stdClass Object ( [id] => 11 [username] => me ) .

Il s'avère qu'après l'instanciation avec new, le tableau précédent est effacé, ne laissant que ceux ajoutés plus tard. S'il n'est pas instancié, stdClass conservera tous les éléments.

Il convient de noter que lors de l'utilisation de global et static dans une fonction et que la nouvelle classe std est référencée, &new stdclass sera invalide. Évitez d'utiliser des références et utilisez-les directement. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn