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.

Tu aimerais progresser en PHP ? Mais tu ne sais pas comment t'y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" va bientôt ouvrir ses portes. Il te permettra de recevoir chaque semaine un kata de code directement dans ta boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives, voire des live coding et de la review.

Si tu es intéressé(e), clique sur le bouton ci-dessous pour avoir plus d'informations et t'inscrire afin d'être prévenu(e) de l'ouverture de ce programme.