我想创建包装类,它将启用密钥重复,而默认哈希不允许它。类应该使用php5中引入的成员重载机制,所以它会模仿标准hash的所有行为。例如,我想要 smth like
$var => obj( :values_arr -> array(
obj(:key -> 'mykey', :value -> 'val1'),
obj(:key -> 'mykey', :value -> 'val2')
)
)
如果我想获取 $var['mykey'],它应该返回 array('val1', 'val2'),但是如果我想用新的 'mykey' => 'value' 对扩展 obj,我会调用
$val['mykey'][] = 'value'
主要思想是保留了哈希的行为,并且在尝试使用现有密钥分配值之后,它不会被覆盖,而是附加到列表中。
您将如何模仿 php5(5.3 之前)中的其他数据结构?您是否有任何已知的解决方案或示例要分享?