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.

Vous aimeriez progresser en PHP ? Mais vous ne savez pas comment vous y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.

Reçois dès maintenant un kata gratuit en cliquant sur le bouton ci-dessous.