Beschrijving
int
extract
( array var_array [, int extract_type [, string prefix]])
Deze
functie
wordt
gebruikt
om
variabelen
te
importeren
uit
een
array
naar
de
huidige
symbol
table
.
Er
wordt
een
associatieve
array
var_array
meegegeven
,
en
de
keys
daarvan
worden
als
namen
en
de
waarden
als
waarden
voor
de
variabele
gebruikt
worden
.
Voor
elk
key
/
waarde
paar
zal
de
functie
een
variabele
creeeren
in
de
huidige
symbol
table
,
waarbij
rekening
wordt
gehouden
met
de
extract_type
en
prefix
parameters
.
Opmerking
:
Vanaf
versie
4.0.5
geeft
deze
functie
het
aantal
variabelen
dat
werd
geimporteerd
terug
.
Opmerking
:
EXTR_IF_EXISTS
en
EXTR_PREFIX_IF_EXISTS
werden
toegevoegd
in
versie
4.2.0
.
Opmerking
:
EXTR_REFS
werd
toegevoegd
in
versie
4.3.0
.
extract(
)
kijkt
bij
elke
key
of
het
een
valide
naam
voor
een
variabele
is
.
Ook
wordt
er
gecheckt
op
botsingen
met
bestaande
variabelen
in
de
symbol
table
.
Ongeldige
/
numerieke
keys
en
botsingen
worden
volgens
extract_type
.
Deze
kan
een
van
de
volgende
waarden
hebben
:
- EXTR_OVERWRITE
-
Als
er
een
botsing
is
moet
de
bestaande
variabele
overschreven
worden
.
- EXTR_SKIP
-
Als
er
een
botsing
is
moet
de
bestaande
variabele
intact
gelaten
worden
.
- EXTR_PREFIX_SAME
-
Als
er
een
botsing
is
,
zet
dan
prefix
voor
de
naam
van
de
variabele
.
- EXTR_PREFIX_ALL
-
Zet
prefix
voor
de
namen
van
alle
variabelen
.
Vanaf
PHP
4.0.5
geldt
dit
ook
voor
numerieke
variabelen
.
- EXTR_PREFIX_INVALID
-
Zet
alleen
een
prefix
voor
ongeldige
en
numerieke
namen
van
variabelen
.
Deze
flag
werd
toegevoegd
in
PHP
4.0.5
.
- EXTR_IF_EXISTS
-
Overschrijf
de
variabele
alleen
als
deze
al
bestaat
in
de
huidige
symbol
table
,
en
doe
anders
niets
.
Dit
is
bruikbaar
om
een
lijst
van
geldige
variabelen
te
genereren
en
vervolgens
alleen
deze
variabelen
te
extraheren
uit
$_REQUEST
,
bijvoorbeeld
.
Deze
flag
werd
toegevoegd
in
PHP
4.2.0
.
- EXTR_PREFIX_IF_EXISTS
-
Maak
alleen
variabelen
als
de
variant
van
de
variabele
zonder
prefix
al
bestaat
in
de
huidige
symbol
table
.
Deze
flag
werd
toegevoegd
in
PHP
4.2.0
.
- EXTR_REFS
-
Importeer
variabelen
als
referenties
.
Dit
betekent
effectief
dat
de
waarden
van
de
geimporteerde
variabelen
nog
steeds
aan
de
waarden
van
de
var_array
parameter
refereren
.
Deze
flag
kan
alleen
gebruikt
worden
of
worden
gecombineerd
met
een
van
de
andere
flags
door
hem
via
OR
toe
te
voegen
aan
extract_type
.
Deze
flag
werd
toegevoegd
in
PHP
4.3.0
.
Als
extract_type
niet
is
gegeven
wordt
aangenomen
dat
EXTR_OVERWRITE
werd
bedoeld
.
Let
erop
dat
prefix
alleen
hoeft
te
worden
gegeven
als
extract_type
de
waarde
EXTR_PREFIX_SAME
,
EXTR_PREFIX_ALL
,
EXTR_PREFIX_INVALID
of
EXTR_PREFIX_IF_EXISTS
heeft
.
Als
het
resultaat
met
de
toevoeging
geen
geldige
naam
voor
een
variabele
is
wordt
deze
niet
toegevoegd
aan
de
symbol
table
.
extract(
)
geeft
het
aantal
succesvol
geimporteerde
variabelen
terug
.
extract(
)
kan
gebruikt
worden
om
variabelen
in
de
symbol
table
te
importeren
die
werden
teruggegeven
door
wddx_deserialize(
)
.
Voorbeeld
1
.
extract(
)
voorbeeld
?php
/
*
Stel
dat
$var_array
een
array
is
die
werd
teruggegeven
door
wddx_deserialize(
)
*
/
$size
=
"large"
;
$var_array
=
array
("color
"
=
"blue"
,
"size
"
=
"medium"
,
"shape
"
=
"sphere")
;
extract
($var_array
,
EXTR_PREFIX_SAME
,
"wddx")
;
print
"$color
,
$size
,
$shape
,
$wddx_size\n"
;
?
|
|
De
output
van
het
bovenstaande
programma
ziet
er
zo
uit
:
$size
werd
niet
overschreven
omdat
EXTR_PREFIX_SAME
was
gespecificeerd
,
die
ervoor
zorgde
dat
$wddx_size
werd
aangemaakt
.
Als
EXTR_SKIP
was
gegeven
zou
$wddx_size
niet
eens
worden
aangemaakt
.
EXTR_OVERWRITE
zou
ervoor
gezorgd
hebben
dat
$size
de
waarde
"
medium
"
zou
hebben
,
en
EXTR_PREFIX_ALL
zou
hebben
gezorgd
dat
de
nieuwe
variabelen
$wddx_color
,
$wddx_size
,
en
$wddx_shape
hadden
geheten
.
Er
moet
een
associatieve
array
gebruikt
worden
.
Een
numeriek
geindexeerde
array
zal
geen
resultaten
produceren
tenzij
EXTR_PREFIX_ALL
of
EXTR_PREFIX_INVALID
gebruikt
wordt
.
Zie
ook
compact(
)
.