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