extract

extract -- Importe les variables dans la table des symboles

Description

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 .

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 wddx_deserialize( ) .

Exemple 1 . Exemple avec extract( )

 
 ?php

 
/

 
*

 
Supposons

 
que

 
$var_array

 
est

 
un

 
tableau

 
retourné

 
par

 
  
   
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 .