Documentación offline PHP master

La clase stdClass

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

Introducción#

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.

Sinopsis de la clase#

#[\AllowDynamicProperties]

stdClass

Esta clase no tiene métodos ni propiedades predeterminadas.

Ejemplos#

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"
}

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"
}

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)
}