4th Street Bar Hive-Bar

Hive-Bar Powered by Hive beta-fdb5b5b

Community post

PHP et la fonction extract en détails...

php extract
Bonjour à tous,

Aujourd'hui, pour mon premier post, je vais vous présenter une fonction bien sympathique en php.
J'ai nommé extract().

Le but de cette dernière est d'extraire les clef/valeurs d'un tableau pour les transformer en variables simples.

Afin d'éviter toutes explications farfelues, voici un exemple :

//une variable simple
$zero = 'value 0';

//notre tableau clefs/valeurs
$myArray = array(
    'one' => 'value 1',
    'two' => 'value 2',
    'three' => 'value 3'
);

//utilisation de notre fonction
extract($myArray);

//on peut désormais utiliser nos variables simples et extraites de notre tableau
echo "$zero, $one, $two, $three";

Ce petit script affichera donc :

value 0, value 1, value 2, value 3

Bien pratique n'est-ce pas?

Je viens de vous illustrer un cas simple.
Que se passe-t-il si une variable de notre code à le même nom qu'une clef de notre tableau?
Il y a conflit ou collision.
On a à notre disposition un deuxième argument (FLAGS) et un troisième argument (PREFIX) qui nous permettent de gérer ces conflits.

FLAGS:

  • EXTR_OVERWRITE : remplace la variable existante lors d'un conflit (valeur par défaut)
  • EXTR_SKIP : lors d'un conflit, l'ancienne variable est conservée et celle du tableau est ignorée
  • EXTR_PREFIX_SAME : ajoute le PREFIX en cas de collision
  • EXTR_PREFIX_ALL : le PREFIX sera systématiquement ajouté
  • EXTR_PREFIX_INVALID : le PREFIX sera ajouté aux aux variables ayant un nom invalide
  • EXTR_IF_EXISTS : remplace la variable existante en cas de conflit, si il n'y a pas de confit, on n'extraie pas
  • EXTR_PREFIX_IF_EXISTS : extraira uniquement des variables préfixées si la variable non préfixée existe dans le contexte, sinon ne fait rien
  • EXTR_REFS : extrait les variables sous formes de références

Note : si un PREFIX est ajouté, le underscore (_) sera automatiquement ajouté entre ce dernier et le nom de la variable.

Enfin, la valeur de retour de la fonction sera le nombre de variables extraites.

Voilà pour la présentation de la fonction extract().

A vous la pratique pour tester les différents cas.

A bientôt...

7 upvotes $0.00

Replies (4)

Review before signing

Posting as . Signing with . Keychain permission: Posting. Hive Keychain will ask you to approve this action next.


  
Technical details

Operation fingerprint: