Verification: a143cc29221c9be0

New stdclass php что это

Преобразование типов

Преобразование ассоциативного массива в объект приводит к созданию объекта класса stdClass;

$userAsArray = [
  'name' => 'George',
  'age' => 18
];

$userAsObject = (object) $userAsArray;

var_dump($userAsObject);
// class stdClass#2 (2) {
//   public $name =>
//   string(6) "George"
//   public $age =>
//   int(18)
// }

Парсинг JSON

В PHP не разделяются понятия массив и ассоциативный массив, что резко отличается от всех остальных языков и форматов. Например, в JSON это два разных типа данных.

{
  "files": ["src/Countable.php", "src/Moment.php"],
  "require": {
    "phpunit": "*",
    "http-client": "*"
  }
}

В JSON files содержит массив, а require - ассоциативный массив. Именно в таких ситуациях и подходит stdClass (хотя, откровенно говоря, это - костыль из-за отсутствия нормальных массивов). Функция json_decode() парсит переданный ей JSON и формирует либо массив, либо объект stdClass, в зависимости от того, чем были данные внутри JSON.

stdClass Object
(
    [files] => Array
        (
            [0] => src/Countable.php
            [1] => src/Moment.php
        )

    [require] => stdClass Object
        (
            [phpunit] => *
            [http-client] => *
        )

)