stdClass
Оновлено: 11.05.2023
(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);
Приклад #2 Створено в результаті json_decode()
<?php
$json = '{"foo":"bar"}';
var_dump(json_decode($json));
Приклад #3 Оголошення динамічних властивостей
<?php
$obj = new stdClass();
$obj->foo = 42;
$obj->{1} = 42;
var_dump($obj);