(PHP 4, PHP 5, PHP 7, PHP 8)
Пустой класс общего назначения с динамическими свойствами.
Объекты класса могут быть инициализированы с помощью оператора new или созданы с помощью преобразования в объект. Некоторые функции PHP также создают экземпляры этого класса, например, функции json_decode(), mysqli_fetch_object() или PDOStatement::fetchObject().
Несмотря на отсутствие реализации магических методов
__get()/__set(),
класс позволяет использовать динамические свойства
и не требует атрибута #[\AllowDynamicProperties]
.
Это не базовый класс, поскольку в PHP нет понятия универсального базового класса. Однако можно создать пользовательский класс, который расширяет 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) }