gpt4 book ai didi

php - SPL objectstorage vs SPL 数组 vs 普通数组

转载 作者:可可西里 更新时间:2023-11-01 13:24:47 24 4
gpt4 key购买 nike

普通数组、SPL 数组和 SPL 数据存储之间的区别、*用法*场景是什么?如果有人能给出一些使用 SPLarray 和 SPL objectsrorage 的实际例子,那就太好了。

最佳答案

SplFixedArray的主要优势是对于数组的特定用例子集,它要快得多(该子集是只有整数键和固定长度的数组)。所以,例如:

$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 类的映射:

$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]

关于php - SPL objectstorage vs SPL 数组 vs 普通数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11592337/

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