Класс stdClass

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

Введение

Пустой класс общего назначения с динамическими свойствами.

Объекты класса могут быть инициализированы с помощью оператора new или созданы с помощью преобразования в объект. Некоторые функции PHP также создают экземпляры этого класса, например, функции json_decode(), mysqli_fetch_object() или PDOStatement::fetchObject().

Несмотря на отсутствие реализации магических методов __get()/__set(), класс позволяет использовать динамические свойства и не требует атрибута #[\AllowDynamicProperties].

Это не базовый класс, поскольку в PHP нет понятия универсального базового класса. Однако можно создать пользовательский класс, который расширяет stdClass и в результате наследует функциональность динамических свойств.

Обзор классов

class stdClass {
}

У класса нет методов или свойств по умолчанию.

Примеры

Пример #1 Создание в результате преобразования в объект

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

Результат выполнения приведённого примера:

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

Пример #2 Создание в результате работы функции json_decode()

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

Результат выполнения приведённого примера:

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

Пример #3 Объявление динамических свойств

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

Результат выполнения приведённого примера:

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