ラッパークラスを作成したいのですが、デフォルトのハッシュでは許可されていませんが、キーの複製が有効になります。クラスはphp5で導入されたメンバーのオーバーロードメカニズムを使用する必要があるため、標準ハッシュのすべての動作を模倣します。たとえば、私は次のようなsmthが欲しい
$var => obj( :values_arr -> array(
obj(:key -> 'mykey', :value -> 'val1'),
obj(:key -> 'mykey', :value -> 'val2')
)
)
$ var ['mykey']を取得する場合は、array('val1'、'val2')を返す必要がありますが、objを新しい'mykey' =>'value'ペアで拡張する場合は、
$val['mykey'][] = 'value'
主なアイデアは、ハッシュの動作が保持され、既存のキーの使用に値を割り当てようとした後、上書きされずにリストに追加されるというものです。
php5(5.3より前)の他のデータ構造をどのように模倣しますか?共有したい既知の解決策や例はありますか?