Importe les variables dans la table des symboles
int extract (array var_array, int extract_type , string prefix )
extract() sert à exporter un tableau vers
la table des symboles. Elle prend un tableau associatif
var_array, crée les variables dont les
noms sont les index de ce tableau, et leur affecte la valeur associée.
Pour chaque paire clé/valeur, extract() crée
une variable, avec les paramètres extract_type
et prefix.
Note :
Depuis la version 4.0.5, extract() retourne le nombre de
variables extraites.
extract() vérifie l'existence de la variable avant
de la créer. Le traitement des collisions est
déterminé par extract_type.
Ce paramètre peut prendre une des valeurs suivantes :
EXTR_OVERWRITE
-
Lors d'une collision, réécrire la variable existante.
EXTR_SKIP
-
Lors d'une collision, ne pas réécrire la variable existante.
EXTR_PREFIX_SAME
-
Lors d'une collision, ajouter le préfixe prefix,
et créer une nouvelle variable.
EXTR_PREFIX_ALL
-
Ajouter le préfixe prefix, et créer
une nouvelle variable.
EXTR_PREFIX_INVALID
-
Préfixer uniquement les variables aux noms invalides ou numériques
avec le préfixe prefix. Ceci a
été ajouté en PHP 4.0.5.
Si extract_type est omis, extract()
utilise EXTR_OVERWRITE par défaut.
Notez que prefix n'est nécessaire que pour
les valeurs de extract_type suivantes :
EXTR_PREFIX_SAME, EXTR_PREFIX_ALL ou EXTR_PREFIX_INVALID. Le résultat
préfixé n'est pas un nom de variable valide,
il ne sera pas importé dans la table des symboles.
extract() retourne le nombre de variables réellement
importées dans la table des symboles.
Une utilisation possible de la fonction extract() est l'exportation
vers la table des symboles de tableaux de variables retournés
par @xref{function.wddx-deserialize,,wddx_deserialize()}.
Exemple avec extract()
<?php
/* Supposons que $var_array est un tableau retourné par
@xref{function.wddx-deserialize,,wddx_deserialize()} */
$taille = "grand";
$var_array = array("couleur" => "bleu",
"taille" => "moyen",
"forme" => "sphere");
extract($var_array, EXTR_PREFIX_SAME, "wddx");
print "$couleur, $taille, $forme, $wddx_taille\n";
?>
L'exemple ci-dessus va afficher
bleu, large, sphere, moyen
La variable $taille n'a pas été réécrite, car on
avait spécifié le paramètre EXTR_PREFIX_SAME, qui a permis
la création $wddx_size. Si EXTR_SKIP avait été
utilisé, alors $wddx_size n'aurait pas été
créé. Avec EXTR_OVERWRITE, $taille aurait pris la valeur "moyen",
et avec EXTR_PREFIX_ALL, les variables créées seraient
$wddx_couleur, $wddx_taille, et $wddx_forme.