Deux fonctions spécifiques à PHP permettent de créer des variables à partir des éléments contenus dans un tableau.

### Extraires des variables d'un tableau

La fonction extract() est l'inverse de la fonction compact() vue précédemment. extract() crée une liste de variables à partir du tableau passé en paramètre. Les variables ont pour nom le nom des clés, et pour valeur les valeurs des élements. Cette fonction n'est utilisable qu'avec les tableaux associatifs car PHP n'accepte pas de nom de variable commençant par un nombre.

Exemple : tableau en variables
<?php require('bib_fonctions.php'); htmlDebut('Tableau en variables'); $t['nom'] = 'Piat'; $t['prenom'] = 'François'; $t['bureau'] = 409; $t['mail'] = 'francois.piat@univ-fcomte.fr'; infoTableau($t); htmlInfo('Extraction de variables'); extract($t); echo '<br>$nom = ', $nom, '<br>$prenom = ', $prenom, '<br>$bureau = ', $bureau, '<br>$mail = ', $mail; htmlFin(); ?>

### Nommer les variables extraites du tableau

La fonction list() est comparable dans son résultat à la fonction extract() , mais elle permet de nommer les variables extraites du tableau, et donc de travailler avec des tableaux à indices numériques ou associatifs.

Tout comme array(), list() n'est pas une véritable fonction, mais une structure du langage

L'utilisation de list() est un peu particlière et la syntaxe est la suivante :
list($a, $b, $c) = $tableau;

Si la liste des noms de variables est plus petite que la taille du tableau, les éléments hors liste du tableau sont ignorés.
Si la liste des noms de variables est plus grande que la taille du tableau, les variables sans correspondance sont initialisées à null.
Des virgules consécutives dans la liste permettent de sauter des éléments dans le tableau.

Exemple : tableau en variables
<?php require('bib_fonctions.php'); htmlDebut('Tableau en variables'); $t[] = 'Piat'; $t[] = 'François'; $t[] = 409; $t[] = 'francois.piat@univ-fcomte.fr'; infoTableau($t); htmlInfo('Tout le tableau en variables'); list($nom, $prenom, $bureau, $mail) = $t; echo '$nom = ', $nom, '<br>$prenom = ', $prenom, '<br>$bureau = ', $bureau, '<br>$mail = ', $mail; htmlInfo('Le 2eme et le 4eme élément'); list(, $p, , $m) = $t; echo '$p = ', $p, '<br>$m = ', $m; htmlInfo('Avec date et heure'); $d = date('Y-m-d-h-i-s'); list($aa, $mm, $jj, $hh, $mn, $ss) = explode('-', $d); echo '$jj = ', $jj, '<br>$mm = ', $mm, '<br>$aa = ', $aa, '<br>$hh = ', $hh, '<br>$mn = ', $mn, '<br>$ss = ', $ss; htmlFin(); ?>