PHP et la fonction extract en détails...
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...
Fonction très pratique et utile pour les variables globales notamment
Merci pour l' article !
Congratulations @bibi4537! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes received
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Mon fils en a reçu 4 de petits éléphants PHP ;)