Хотя приведение в качестве (объекта) прекрасно работает на одном иерархическом уровне, оно не углубляется.Другими словами, если мы хотим, чтобы объекты на каждом уровне, мы должны были сделать что-то вроде:
$foods = (object)[
"fruits" => (object)["apple" => 1, "banana" => 2, "cherry" => 3],
"vegetables" => (object)["asparagus" => 4, "broccoli" => 5, "carrot" => 6]
];
Однако, вместо того, чтобы выполнять многократное приведение как объекты, мы можем обернуть все это в json_encode иjson_decode вот так:
$foods = json_decode(json_encode([
"fruits" => ["apple" => 1, "banana" => 2, "cherry" => 3],
"vegetables" => ["asparagus" => 4, "broccoli" => 5, "carrot" => 6]
]));
Это гарантирует, что это объект на самом глубоком уровне.