Я работаю над кодом для управления коллекцией уникальных объектов. Первый прототип этого кода использует ассоциативный массив, в основном так, как я всегда это делал.
Тем не менее, я также стремлюсь использовать преимущества функциональности, добавленной в более современные версии PHP, такие как SplObjectStorage, для этого вместо этого, частично в качестве учебного процесса, отчасти потому, что он должен давать преимущества видно, что во многих случаях SplObjectStorage может работать быстрее, чем массивы).
В текущей реализации есть ассоциативный массив, который я проверяю с помощью in_array, чтобы увидеть, есть ли объект в массиве, прежде чем добавить в него новый объект.
Большая проблема, которую я вижу в SplObjectStorage, заключается в том, что он (на первый взгляд) не поддерживает поведение ассоциативного массива ключ / значение и может рассматриваться только как индексированный массив. Тем не менее, документация для новых функций PHP не соответствует стандартам документации более устоявшихся частей языка, и я мог бы просто что-то упустить.
Могу ли я использовать SplObjectStorage вместо ассоциативного массива? Если да, как определить ключ при добавлении нового объекта? Что еще более важно, каковы относительные преимущества и недостатки SplObjectStorage по сравнению с ассоциативными массивами?