我正在研究标准PHP库(SPL)。我之前只使用了数组,现在才发现PHP有这么多标准类。但手册中并没有说明是否推荐使用。例如,他们明确建议使用foreach
构造来迭代数组,因为这样更快。那么这个库呢?如果我需要在对象中存储一些数据,我应该根据自己的情况使用一些具体的SPL类,还是使用标准数组更好?
发布于 2012-07-08 13:22:30
你的问题有很多。您是否应该使用SPL数据结构?那得看情况。
PHP数组可以充当映射、链表或数组。很少需要一种数据类型同时充当所有这些内容,因此SPL数据类型的重点性质并不是如此有限。事实上,大多数“局外人”(以及一些“局内人”)会认为PHP的数组是一种讽刺。
PHP数组的主要缺点是它使用了大量内存。即使你只想要一个固定的,顺序的,索引的数组,你也有东西链接在一起和存储键的开销。尽管如此,如果你主要是追加数据并迭代它,PHP的数组通常比对象类型快得多,可能是因为函数调用减慢了速度。
一般来说,我没有看到很多人使用SPL数据结构。我认为,主要是因为在PHP和web应用程序的上下文中,它们通常不是很适用。您通常在处理小数组,其中内置运算符和数组函数的便利性超过了SPL类型的任何优点。
这就是说:
SPLFixedArray
。它们肯定会消耗更少的内存。SplObjectStorage
(因为PHP数组不能使用对象键)。对本机数组和SPL对象进行基准测试,并使用任何一个具有适合您的内存+速度+简单性折衷的对象。
https://stackoverflow.com/questions/11379140
复制相似问题