Créer un tableau associatif à partir de variables

Il arrive parfois de vouloir créer un tableau associatif à partir de plusieurs variables, lorsque l'on souhaite par exemple passer des données à template (PHP, twig, blade).

$username = 'john';
$fullName = 'John Doe';
$age = 42;

$this->render(
    'user.html.twig',
    [
        'username' => $username,
        'fullName' => $fullName,
        'age' => $age, 
    ]
);

Ce code est tout à fait valide, mais on peut faire plus simple en utilisant une fonction native de PHP.

$username = 'john';
$fullName = 'John Doe';
$age = 42;

$this->render(
    'user.html.twig',
    compact('username', 'fullName', 'age')
);

La fonction compact va créer un tableau associatif avec comme clé le nom de la variable et comme valeur la valeur associée.

Dans l'exemple ci-dessus, compact va donc créer :

array (
  'username' => 'john',
  'fullName' => 'John Doe',
  'age' => 42,
)

Il existe la fonction inverse, extract, qui va créer des variables à partir d'un tableau associatif.

$var = [
    'username' => 'John',
    'fullName' => 'John Doe',
    'age' => 42,
];

extract($var);

La fonction extract va créer autant de variables que d'entrées dans le tableau. Dans l'exemple ci-dessus, les variables $username, $fullName et $age vont être créées avec respectivement les valeurs john, John Doe et 42.

Cet article t'a plu ? Si oui, je te propose de t'inscrire à ma dev letter pour recevoir régulièrement dans ta boîte mail mes conseils, mes nouveaux articles, des vidéos à voir, des outils à découvrir et encore bien d’autres choses.

Je m'inscris