Коллекции структур данных PHP (Java-подобных)
Я задаюсь вопросом о достоинствах создания небольшой библиотеки, вероятно, для личного использования, которая определяет несколько структур данных, таких как связанные списки, деревья (Binary, AVL и т. д...), Хэш-таблицы поиска и тому подобное.
Некоторые из них будут построены поверх собственного массива PHP, поскольку он действует как многие из этих типов, а некоторые потенциально не будут.
Мой вопрос в том, действительно ли имеет смысл строить какие - либо из этих классов-особенно те, которые не могут строиться на родном языке. массив? Я говорю здесь о вычислительной практичности, и не особенно хочу вдаваться в аргумент динамического и типизированного языка (мне все еще интересно услышать что-нибудь интересное и актуальное на эту тему в стороне).
Безумно ли строить эти (возможно, более эффективные, логически) структуры данных с использованием классов, когда у нас есть C-реализация базового массива?
Спасибо..
4 ответов:
Уже есть http://php.net/manual/en/book.spl.php которые могут охватывать то, что вы хотите, но если создание этих будет интересно для вас и улучшить ваши навыки PHP/общего кодирования, то я думаю, что это было бы очень хорошей идеей.
Также может быть хорошей библиотекой, чтобы выпустить ее для более широкой аудитории и что-то добавить в свое резюме.
Взгляните на SPL
Http://php.net/manual/en/book.spl.php
И прочитайте новые функции Spl Мэтью Терланда в PHP 5.3 для обсуждения этих структур данных.
Это поздний ответ, но это поможет кому-то искать структуры данных PHP. PHP 7 вводит расширение под названием
ds, предоставляющее специализированные структуры данных в качестве альтернативы массиву.The
ds,
- использует пространство имен
Ds\.- имеет 3 интерфейса, а именно:,
Collection,SequenceиHashable.- имеет 8 классов, а именно:,
Vector,Deque,Queue,PriorityQueue,Map,Set,Stack, иPair.Для получения дополнительной информации проверьте руководство а такжеэтот пост в блоге содержит некоторую потрясающую информацию, включая бенчмарки.
Если вы ищете производительность, вы можете создать модуль php (например, SPL), который предоставляет доступ к этим структурам (поскольку они уже реализованы в C).
Comments