jjzjj

splobjectstorage

全部标签

php - 使用 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的重载元素对...没有影响”我认为发生这种情况是因为S

php - 关联数组与 SplObjectStorage

我正在编写代码来管理独特对象的集合。这段代码的第一个原型(prototype)使用了一个关联数组,基本上我一直都是这样做的。但是,我也热衷于利用添加到更现代版本的PHP中的功能,例如[SplObjectStorage][1]来代替这样做,部分是作为一种学习经验,部分原因是它必然会提供优势(我看到的基准表明SplObjectStorage在很多情况下可以比数组更快)。当前的实现有一个关联数组,我使用in_array()检查该数组,以查看对象是否已在数组中,然后再向其添加新对象。我在SplObjectStorage中看到的最大问题是它似乎(乍一看)不支持键/值关联数组行为,并且只能被视为索
12