【发布时间】:2012-03-11 22:23:21
【问题描述】:
在以下代码中:
$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 的重载元素对...没有影响”
我认为这是因为SplObjectStorage 中的ArrayAccess 的实现没有通过引用返回值。
有没有办法使用SplObjectStorage 作为键是对象而值是可变数组的数据映射?有没有其他可行的选择来做这种工作?
【问题讨论】:
标签: php spl arrayaccess splobjectstorage