首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SPL对象存储与SPL数组和普通数组

SPL对象存储与SPL数组和普通数组
EN

Stack Overflow用户
提问于 2012-07-21 12:51:31
回答 1查看 1.9K关注 0票数 6

普通数组、SPL数组和SPL数据存储之间的差异是什么?如果有人能给出一些SPLarray和SPL对象使用的实际例子,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-21 14:50:16

SplFixedArray的主要优点是,对于数组的某些用例子集,它要快得多(该子集是只有整数键和固定长度的数组)。因此,例如:

代码语言:javascript
复制
$a = array("foo", $bar, 7, ... thousands of values ..., $quux);
$b = \SplFixedArray::fromArray($a);

// here, $b will be much faster to use than $a

这个类的用法实际上可以是您可以使用数组的任何东西,但是发现它们以前太慢了。在大型数据集的复杂计算中,很多时候都是这种情况。对于您典型的基于PHP的web应用程序或网站,不会有太多(如果有的话)情况下,您将需要性能提升。

然而,SplObjectStorage类在各种典型情况下都可能很有用。它提供了一种将对象映射到其他数据的方法。因此,例如,您可能有一个Route类,您希望提供到Controller类的映射:

代码语言:javascript
复制
$routeOne = new Route(/* ... */);
$routeTwo = new Route(/* ... */);

$controllerOne = new Controller(/* ... */);
$controllerTwo = new Controller(/* ... */);

$controllers = new \SplObjectStorage();

$controllers[$routeOne] = $controllerOne;
$controllers[$routeTwo] = $controllerTwo;

// now you can look up a controller for a given route by:  $controllers[$route]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11592337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档