普通数组、SPL 数组和 SPL 数据存储之间有什么区别,*用法* 场景?如果有人能给出一些使用 SPLarray 和 SPL objectsrorage 的实际例子,那就太好了。
问问题
1857 次
1 回答
4
的主要优点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]
于 2012-07-21T14:50:16.617 回答