Fonction extract() | Développement Web

Fonction extract()

La fonction extract permet de créer et d’initialiser des variables à partir des clés et des valeurs des éléments d’un tableau associatif.

Utilisation de la fonction extract()

La signature de la fonction extract est la suivante :

extract ( $array [, $mode [, $prefixe ]] );

8 modes différents sont disponibles:

  • EXTR_OVERWRITE : Si une variable du même nom existe, son contenu est remplacé (mode par défaut).
  • EXTR_SKIP : Si une variable du même nom existe, celle-ci n’est pas remplacée.
  • EXTR_PREFIX_SAME : Si une variable du même nom existe, une nouvelle variable est créée en utilisant le préfixe $prefixe.
  • EXTR_PREFIX_ALL : Préfixe toutes les nouvelles variables avec le préfixe $prefixe.
  • EXTR_PREFIX_INVALID : Préfixe uniquement les variables invalides ou numériques avec $prefixe.
  • EXTR_IF_EXISTS : Écrase la variable uniquement si elle existe déjà.
  • EXTR_PREFIX_IF_EXISTS : Ne crée que des variables préfixées si la version non préfixée de la même variable existe.
  • EXTR_REFS : Extrait les variables sous forme de références. Cela signifie que les valeurs des variables importées font toujours référence aux valeurs des variables d’origine dans le paramètre $array

Les préfixes sont automatiquement séparés de l’index du tableau par un caractère de soulignement.

La fonction extract retourne le nombre de variables importées avec succès.

   $nom = 'list';

   /* Déclaration du tableau */    

   $array = array(  'langage' => 'php', 'nom' => 'extract', 'date' => '2009'  );

   extract ( $array );
   echo $nom; /* affiche :  extract */    

   extract ( $array, EXTR_SKIP );
   echo $nom; /* affiche :  list */    

   extract ( $array, EXTR_PREFIX_SAME,  'var_' );
   echo $nom; /* affiche :  list */
   echo $var_nom; /* affiche :  ''  */
   echo $var__nom; /* affiche :  extract */    

   extract ( $array, EXTR_PREFIX_SAME,  'var' );
   echo $nom; /* affiche :  list */
   echo $var_nom; /* affiche :  extract */    

   extract ( $array, EXTR_PREFIX_ALL,  'var' );
   echo $nom; /* affiche :  list */
   echo $var_nom; /* affiche :  extract */
   echo $var_langage; /* affiche :  php */    

   echo extract ( $array ); /* affiche :  3 */