Tableau associatif contre SplObjectStorage

Je suis en train de travailler sur le code pour gérer une collection d'objets uniques. Le premier prototype de ce code utilise un tableau associatif, en gros que c'est la façon dont je l'ai toujours fait.

Cependant, je suis également désireux de prendre avantage de la fonctionnalité qui a été ajoutée à des versions plus modernes de PHP comme SplObjectStorage pour ce faire, au lieu de cela, en partie comme une expérience d'apprentissage, en partie parce qu'il est lié à offrir des avantages (benchmarks que j'ai vu suggèrent que SplObjectStorage peut être plus rapide que les tableaux, dans beaucoup de cas).

La mise en œuvre actuelle a un tableau associatif que je vérifie avec in_array pour voir si un objet est déjà dans le tableau avant d'ajouter un nouvel objet à elle.

Le gros problème que je peux voir avec SplObjectStorage est qu'il ne semble pas (à première vue) à l'appui de clé/valeur tableau associatif comportement, et ne peut être traitée comme un tableau indexé. Toutefois, la documentation pour les nouvelles fonctionnalités de PHP n'est pas à la hauteur des normes de la documentation de plus établi les parties de la langue et j'ai peut être raté quelque chose.

Puis-je utiliser SplObjectStorage en place d'un tableau associatif? Si oui, comment dois-je définir la clé lors de l'ajout d'un nouvel objet? Plus important encore, quels sont les avantages et les inconvénients de SplObjectStorage lorsque par rapport aux tableaux associatifs?

  • double possible de SplObjectStorage ne fonctionne pas avec de la Ficelle, que faire?
  • Je ne pense pas que ma question est toute semblable à celle que vous avez indiqué.
  • lire ce nouveau
  • Pris un peu plus près, mais ne voyez toujours pas comment mon problème (Peut-on utiliser SplObjectStorage en place d'un associatif array et si oui, quels sont les avantages et les inconvénients?) est un doublon de celui-ci (Pourquoi ne puis-je pas mettre les chaînes dans un SplObjectStorage?)
  • Je pense que la question a suggéré si vous voulez faire associer tableau, puis utilisez la spl objet de hachage, et l'attacher à la spl objet de stockage. Inconvénient? est gênante. Les avantages de la spl objet de stockage est parce que c'est à l'aide de la clé d'index (voir la mise en œuvre utilisez uniquement next,prev pour faire avancer le pointeur).Et de remettre à associer la clé est juste à l'encontre du but. C'est ce que je pensais.
InformationsquelleAutor GordonM | 2011-12-15