【发布时间】:2026-01-17 10:25:01
【问题描述】:
我想创建包装类,这将启用密钥重复,而默认哈希不允许它。类应该使用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之前)中的其他数据结构?您有什么已知的解决方案或示例要分享吗?
【问题讨论】: