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