gpt4 book ai didi

PHP SPL,值得使用还是原始数组函数更好?

转载 作者:IT王子 更新时间:2023-10-28 23:57:49 27 4
gpt4 key购买 nike

我正在研究标准 PHP 库 (SPL)。以前只用过数组,现在才发现PHP有这么多标准类。但是说明书上并没有说推荐使用与否。例如,他们明确建议使用 foreach 构造来迭代数组,因为它更快。那么这个图书馆呢?如果我需要在对象中存储一些数据,我应该针对我的情况使用一些具体的 SPL 类还是使用标准数组更好?

最佳答案

您的问题很多。您应该使用 SPL 数据结构吗?这取决于。

PHP 数组可以充当映射、链表或数组。您实际上很少需要一种数据类型同时充当所有这些东西,因此 SPL 数据类型的重点性质并没有那么局限。事实上,大多数“局外人”(和一些“局内人”)会认为 PHP 的数组是一种讽刺。

PHP 数组的主要缺点是它使用大量内存。即使你只想要一个固定的、顺序的、索引的数组,你也会有将事物链接在一起和存储键的开销。尽管如此,如果您主要是附加数据并对其进行迭代,则 PHP 的数组通常比对象类型快得多,这可能是因为函数调用会减慢速度。

一般来说,我没有看到很多人使用 SPL 数据结构。我认为,主要是因为在 PHP 和 Web 应用程序的上下文中,它们通常不是很适用。您通常处理的是小型数组,其中内置运算符和数组函数的便利性超过了 SPL 类型的任何优势。

也就是说:

  • 如果您发现自己处于将数组用作链表(在中间插入/删除)的情况,请尝试使用 SPL 双向链表之一。

  • 如果您发现自己在使用大型索引数组,请尝试使用 SPLFixedArray。它们肯定会消耗更少的内存。

  • 如果您需要以对象作为键的映射,请使用 SplObjectStorage(因为 PHP 数组不适用于对象键)。

  • 如果您想让数组中的数据保持有序,请尝试其中一种堆。

将 native 数组与 SPL 对象进行基准测试,并使用适合您的内存 + 速度 + 简单性折衷方案。

关于PHP SPL,值得使用还是原始数组函数更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11379140/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com