:SplObjectStorageをデータマップとして使用すると、データとして可変配列を使用できますか?次のコードで
$storage = new \SplObjectStorage();
$fooA = new \StdClass();
$fooB = new \StdClass();
$storage[$fooA] = 1;
$storage[$fooB] = array();
$storage[$fooA] = 2;
$storage[$fooB][] = 'test';
私はそれがある、$storage[$fooA]
は1
ことを期待します。私はまた$storage[$fooB]
がarray('test')
であると期待しています。また、これは私がSplObjectStorage
でArrayAccess
の実装は参照によって値を返さないので、これが起こると思います
「SplObjectStorageのオーバーロードされた要素の間接的な変更がで...何の効果もありません」、読み込み通知をトリガします。
SplObjectStorage
をキーがオブジェクトで値が可変配列であるデータマップとして使用する方法はありますか?このような仕事をするための実行可能なオプションはありますか?