Creating a fixed-size array with PHP
Published on 2022-11-11 • Modified on 2022-11-11
This snippet shows how to create a fixed-size array with PHP. We can use the SplFixedArray
class. It is interesting to use this structure sometimes for large arrays as it is optimized in memory. Note that we could expect a OutOfBoundsException
if we try to access an invalid index, but we get a RuntimeException
instead.
<?php
declare(strict_types=1);
namespace App\Controller\Snippet;
/**
* I am using a PHP trait to isolate each snippet in a file.
* This code should be called from a Symfony controller extending AbstractController (as of Symfony 4.2)
* or Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
* Services are injected in the main controller constructor.
*/
trait Snippet231Trait
{
public function snippet231(): void
{
$splFixedArray = new \SplFixedArray(5);
$splFixedArray[3] = 'foo';
$splFixedArray[4] = 'bar';
var_dump($splFixedArray);
echo 'Size of array: '.$splFixedArray->count().PHP_EOL.PHP_EOL;
// out of range index
try {
$splFixedArray[10] = 'oops!!';
} catch (\RuntimeException $e) {
echo 'Error: '.$e->getMessage().PHP_EOL.PHP_EOL;
}
var_dump($splFixedArray->toArray());
// That's it! 😁
}
}
Run this snippet More on Stackoverflow Read the doc Random snippet