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
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(
)
.
Příklad
1
.
Ukázka
extract(
)
?php
/
*
Předpokládejme
,
že
$var_array
je
pole
vrácené
z
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"
;
?
|
|
Výše
uvedená
ukázka
vytiskne
:
$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(
)
.