Transformer un tableau en objet traversable avec PHP

Publié le 21/04/2024 • Actualisé le 21/04/2024


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 transformer un tableau en objet traversable avec PHP. Rappel : iterable est un type de retour introduit dans PHP 7.1 alors que Traversable est une interface PHP. Dans ce cas, ArrayIterator implémente l'interface Traversable et peut être typé en tant que iterable.


<?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 Snippet299Trait
{
    public function snippet299(): void
    {
        $ai = new \ArrayIterator([
            'foo' => 'bar',
            'dd' => 'DD',
        ]);
        var_dump($ai->getArrayCopy());

        $ai->ksort();
        var_dump($ai->getArrayCopy(), $ai->count(), is_iterable($ai), is_a($ai, \Traversable::class)); // @phpstan-ignore-line

        // That's it! 😁
    }
}

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

  Travaillez avec moi !