Assoziatives Array versus SplObjectStorage

Ich arbeite an code zu verwalten, eine Sammlung von einzigartigen Objekten. Der erste Prototyp dieser code verwendet ein assoziatives array, im Grunde so, dass die Art, wie ich es immer getan haben.

Ich bin aber auch scharf auf den nutzen von Funktionen, die Hinzugefügt wurden, um mehr moderne Versionen von PHP wie SplObjectStorage, dies zu tun, statt, zum Teil als eine Lernerfahrung, teilweise, weil es gebunden ist, zu bieten Vorteile (benchmarks, die ich gesehen habe vermuten, dass SplObjectStorage schneller sein können als arrays in eine Menge von Fällen).

Die aktuelle Implementierung hat ein assoziatives array, dass ich prüfe mit in_array um zu sehen, ob ein Objekt bereits in dem array vor dem hinzufügen eines neuen Objekts zu.

Das große problem, das ich sehen kann mit SplObjectStorage ist, dass es offenbar nicht (auf den ersten Blick) zur Unterstützung von Schlüssel/Wert-assoziatives array Verhalten, und kann nur behandelt werden, wie in einem indizierten array. Jedoch die Dokumentation für die neueren Funktionen von PHP nicht bis zu den standards der Dokumentation von etablierten teilen der Sprache, und ich könnte einfach etwas fehlt.

Kann ich SplObjectStorage statt von einem assoziativen array? Wenn ja, wie definiere ich die Taste, wenn das hinzufügen eines neuen Objekts? Noch wichtiger ist, was sind die relativen vor-und Nachteile von SplObjectStorage, wenn im Vergleich zu assoziativen arrays?

  • möglich, Duplikat der SplObjectStorage funktioniert nicht mit String, was zu tun ist?
  • Ich glaube nicht, dass meine Frage alle, die ähnlich zu der von Ihnen angegeben.
  • Lesen Sie noch einmal
  • Nahm einen genaueren Blick, aber immer noch nicht sehen, wie mein problem (Kann man verwenden, SplObjectStorage, anstelle des assoziativ - array und wenn ja, was sind die Vorteile und Nachteile?) ein Duplikat der, dass man (Warum kann ich keine strings in ein SplObjectStorage?)
  • Ich denke, die Frage hat vorgeschlagen, wenn Sie wollen, zu tun, associate array, dann verwenden Sie die spl-Objekt, Raute und befestigen Sie an den SL-storage-Objekt. Nachteil? ist mühselig. Die Vorteile der spl-storage-Objekt ist, da ist mit index-Taste (siehe die Umsetzung nur mit next,prev auf das Fortschreiten der Zeiger).Und setzen Sie zurück zu verknüpfen Schlüssel ist nur die Niederlage der Zweck. Dies ist, was ich denken.
InformationsquelleAutor GordonM | 2011-12-15
Schreibe einen Kommentar