Итак, о структурах данных и библиотеке SPL…
Честно говоря, когда я начинал программировать веб-приложения я и не задумывался об использовании структур данных типа стеков или очередей. Вполне хватало массивов. Я думаю, и сами разработчики тоже об этом не задумывались, раз библиотека SPL появилась только в 5-й версии PHP.
Как же реализовались потребности разработчиков в этой сфере до 5-й версии?
Как это часто бывает в мире PHP — люди изобретали свои велосипеды. В сети и сейчас полно сайтов, где люди делятся своими наработками.
Но как говорится, время летит, язык взрослеет, и в PHP появляется библиотека SPL. Приведу цитату с сайта php.net:
Стандартная библиотека PHP (SPL) — это набор интерфейсов и классов, предназначенных для решения стандартных задач. Не требуется никаких внешних библиотек для сборки этого расширения, и оно доступно по умолчанию в PHP 5.0.0 и выше. SPL предоставляет ряд стандартных структур данных, итераторов для оббегания объектов, интерфейсов, стандартных исключений, некоторое количество классов для работы с файлами и предоставляет ряд функций, например spl_autoload_register().
Пример по работе с очередями с php.net:
$q = new SplQueue();
$q->push(1);
$q->push(2);
$q->push(3);
$q->pop();
print_r($q);
Код выше вернет следующее:
SplQueue Object
(
[flags:SplDoublyLinkedList:private] => 4
[dllist:SplDoublyLinkedList:private] => Array
(
[0] => 1
[1] => 2
)
)
C набором структур данных библиотеки можно ознакомиться также на phpnet.ru.
Использовать эту библиотеку или нет, решать вам. Но, раз SPL доступна в PHP по умолчанию, со всеми вытекающими из этого плюсами, взять ее на заметку бесспорно стоит.