(PHP 3 >= 3.0.7, PHP 4, PHP 5)
extract -- Importeer variabelen naar de current symbol table vanuit een array
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:
Als er een botsing is moet de bestaande variabele overschreven worden.
Als er een botsing is moet de bestaande variabele intact gelaten worden.
Als er een botsing is, zet dan prefix
voor de naam van de variabele.
Zet prefix
voor de namen van alle variabelen.
Vanaf PHP 4.0.5 geldt dit ook voor numerieke variabelen.
Zet alleen een prefix
voor ongeldige
en numerieke namen van variabelen. Deze flag werd toegevoegd
in PHP 4.0.5.
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.
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.
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().
De output van het bovenstaande programma ziet er zo uit:
blue, large, sphere, medium |
$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().