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
.
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.