我的问题是我想按对象相等(==)而不是唯一实例进行映射。换句话说,重构它以不抛出错误并返回映射值:
$var1 = (object) [1,2,10];
$var2 = (object) [1,2,10];
$objmap = new SplObjectStorage();
$objmap[$var1] = "mapped value here";
echo $objmap[$var2];
编辑:另外,如果我最终需要遍历 SplObjectStorage 对象的键以通过相等性获得,我想知道一种仅散列对象/数组并简单地映射到散列的好方法。