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" a ouvert 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 nous rejoindre !