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
.