エスパー回答
PHPにおいて連想配列でなくstdClassを使う理由には
PHPにおいて配列の扱いが多少特殊なことが上がるだろうと思います
PHPにおいて配列は値渡しのように振る舞う参照型みたいな挙動をします
php
1<?php
2$arr=[];
3$arr2=$arr;
4$arr2['A']='A';
5function hoge($arr){
6 $arr['B']='B';
7}
8hoge($arr);
9var_dump($arr);
10/*
11array(0) {
12}
13*/
14
15
16$obj=new stdClass();
17$obj2=$obj;
18$obj2->A='A';
19function fuga($obj){
20 $obj->B='B';
21}
22fuga($obj);
23var_dump($obj);
24/*
25object(stdClass)#1 (2) {
26 ["A"]=>
27 string(1) "A"
28 ["B"]=>
29 string(1) "B"
30}
31*/
PHPの配列は内部的には変数には配列のデータへの
アドレスだけが入っている参照型なのですが
スコープで値が変更されると複製されるという変わった挙動をします
エラーメッセージのような様々なスコープで値を追加していくような
普通に参照型として振る舞って欲しいものは
連想配列ではなくstdClassを使った方がシンプルです