Utiliser des indices négatifs avec les tableaux PHP

Publié le 24/02/2024 • Actualisé le 24/02/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 utiliser des indices négatifs avec les tableaux PHP. C'est un des changements majeurs introduits par PHP 8. Si un tableau a un index entier négatif, quand on ajoute un élément avec [], les nouveaux indices prennent les valeurs négatives disponibles au lieu de commencer à 0. C'est quelque chose à savoir, ça peut casser des applications. Dans l'exemple suivant, avec PHP 7.4 et avant, la valeur "moins 1" aurait eu pour indice 0 au lieu de -1.


<?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 Snippet292Trait
{
    public function snippet292(): void
    {
        $arr = [];
        $arr[-4] = 'moins 4';
        $arr[-3] = 'moins 3';
        var_dump($arr);

        $arr[] = 'moins 2';
        var_dump($arr);

        echo PHP_EOL;

        $arr2 = [-4 => 'moins 4', 'moins 3'];
        var_dump($arr2);
        $arr2[] = 'moins 2';
        var_dump($arr2);

        // That's it! 😁
    }
}

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

  Travaillez avec moi !