Manuál PHP | ||
---|---|---|
Předcházející | Další |
extract
Popis
int extract ( array var_array [, int extract_type [, string prefix]] )
Tato funkce se používá k importu proměnných z pole do aktivní symbolové
tabulky. Přijímá pole var_array
; z klíčů vytváří
názvy proměnných a z hodnot hodnoty těchto proměnných. Vytváří jednu
proměnnou z každého klíč/hodnota páru (s ohledem na argumenty
extract_type
a prefix
).
Poznámka: Od PHP 4.0.5 tato funkce vrací počet extrahovaných proměnných.
extract() ověřuje, jestli všechny klíče tvoří platné
názvy proměnných, a také jestli nekolidují s proměnnými existujícími v
aktivní symbolové tabulce. Způsob, jakým se nakládá s neplatnými/numerickými
klíči a kolizemi závisí na extract_type
. Ten může
mít jednu z následujících hodnot.
- EXTR_OVERWRITE
Pokud existuje kolize, přepsat existující proměnnou.
- EXTR_SKIP
Pokud existuje kolize, nepřepsat existující proměnnou.
- EXTR_PREFIX_SAME
Pokud existuje kolize, předřadit před název nové proměnné
prefix
.- EXTR_PREFIX_ALL
Opatřit prefixem
prefix
všechny názvy proměnných. Od PHP 4.0.5 toto zahrnuje i číselné indexy.- EXTR_PREFIX_INVALID
Prefixem
prefix
opatřit pouze neplatné/číselné názvy proměnných. Tento příznak byl přidán v PHP 4.0.5.
Defaultní extract_type
je EXTR_OVERWRITE.
Pozn.: prefix
se vyžaduje pouze pokud je
extract_type
EXTR_PREFIX_SAME, EXTR_PREFIX_ALL nebo
EXTR_PREFIX_INVALID. Pokud výsledný název (vč. prefixu) není platný název
proměnné, nenaimportuje se do symbolové tabulky.
extract() vrací počet proměnných úspěšně naimportovaných do symbolové tabulky.
Možné využití extract() je import proměnných do symbolové tabulky z asociativního pole vráceného wddx_deserialize().
Výše uvedená ukázka vytiskne:
blue, large, sphere, medium |
$size
se nepřepsala, protože bylo specifikováno
EXTR_PREFIX_SAME, tudíž se vytvořila proměnná $wddx_size
.
Pokud by bylo zadáno EXTR_SKIP, nevytvořila by se ani
$wddx_size
.
EXTR_OVERWRITE by způsobilo přepsání hodnoty $size
na
"medium", a EXTR_PREFIX_ALL by vytvořilo nové proměnné pojmenované
$wddx_color
,
$wddx_size
a
$wddx_shape
.
U PHP verzí nižších než 4.0.5 musíte použít asociativní pole.
Viz také: compact().