SPL objectstorage vs SPL array vs ordinary array

arrays, php, spl

Solution

The main advantage of `SplFixedArray` is that for a certain subset of use cases for arrays, it is much faster (that subset being arrays that have only integer keys, and a fixed length). So, for example:

$a = array("foo", $bar, 7, ... thousands of values ..., $quux);
$b = \SplFixedArray::fromArray($a);

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

The usage for this class could literally be anything you could use an array for, but found them to previously be too slow. A lot of times this is the case in complex calculations on large data sets. For your typical PHP-based web application or website, there aren't going to be many (if any) cases where you'd need the performance boost.

The `SplObjectStorage` class, however, can be useful in all kinds of typical cases. It provides a way to map objects to other data. So, for example, maybe you have a `Route` class that you'd like to provide a mapping to a `Controller` class:

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

Problem

what is the difference,*usage* scenerio between normal ARray, SPL array and SPL datastorage? It would be great if anyone can give some practical example of usage of SPLarray and SPL objectsrorage.

Original source