Introducción
PHP Manual
PHP Manual»Interfaces y clases predefinidas»stdClass

La clase stdClass

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

Una clase genérica vacía con propiedades dinámicas.

Los objetos de esta clase pueden ser instanciados con new operador o creados por conversión a objeto. Varias funciones de PHP también crean instancias de esta clase, por ejemplo json_decode(), mysqli_fetch_object() o PDOStatement::fetchObject().

A pesar de no implementar __get()/__set() métodos mágicos, esta clase permite propiedades dinámicas y no requiere el #[\AllowDynamicProperties] atributo.

Esto no es una clase base ya que PHP no tiene el concepto de una clase base universal. Sin embargo, es posible crear una clase personalizada que extienda de stdClass y como resultado herede la funcionalidad de propiedades dinámicas.

#[\AllowDynamicProperties]
class stdClass {
}

Esta clase no tiene métodos ni propiedades predeterminadas.

Ejemplo #1 Creado como resultado de la conversión a objeto

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

El ejemplo anterior mostrará:

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

Ejemplo #2 Creado como resultado de json_decode()

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

El ejemplo anterior mostrará:

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

Ejemplo #3 Declaración de propiedades dinámicas

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

El ejemplo anterior mostrará:

object(stdClass)#1 (2) {
  ["foo"]=>
  int(42)
  ["1"]=>
  int(42)
}
To Top