La classe stdClass

(PHP 4, PHP 5, PHP 7, PHP 8)

Introduction

Une classe générique vide avec des propriétés dynamiques.

Les objets de cette classe peuvent être instanciés avec l'opérateur new ou créés par en utilisant la conversion en objet. Plusieurs fonctions PHP créent également des instances de cette classe, par exemple json_decode(), mysqli_fetch_object() ou PDOStatement::fetchObject().

Bien que n'implémentant pas __get()/__set() cette classe autorise les propriétés dynamiques et ne nécessite pas l'attribut #[\AllowDynamicProperties].

Ce n'est pas une classe de base car PHP n'a pas de concept de classe de base universelle. Cependant, il est possible de créer une classe personnalisée qui étend stdClass et qui hérite ainsi de la fonctionnalité des propriétés dynamiques.

Synopsis de la classe

class stdClass {
}

Cette classe n'a pas de méthode ni de propriété par défaut.

Exemples

Exemple #1 Créé à la suite d'une conversion de type en objet

<?php
$obj
= (object) array('foo' => 'bar');
var_dump($obj);

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemple #2 Créé en tant que résultat de json_decode()

<?php
$json
= '{"foo":"bar"}';
var_dump(json_decode($json));

L'exemple ci-dessus va afficher :

object(stdClass)#1 (1) {
  ["foo"]=>
  string(3) "bar"
}

Exemple #3 Déclaration de propriétés dynamiques

<?php
$obj
= new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);

L'exemple ci-dessus va afficher :

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top