Créez un tableau à taille fixe avec PHP

Publié le 11/11/2022 • Mis à jour le 11/11/2022


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment créer un tableau à taille fixe avec PHP. On peut utiliser la classe SplFixedArray. Il peut être intéressant d'utiliser cette structure parfois pour de larges tableaux, car elle est optimisée en mémoire. Notez que l'on pourrait s'attendre à recevoir une exception OutOfBoundsException si l'on essaie d'accéder à un index invalide, mais on a une exception RuntimeException à la place.


<?php declare(strict_types=1);

namespace App\Controller\Snippet;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal
 */
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! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow   Lire la doc  Snippet aléatoire