Descripción
void
extract
( array matriz_vars [, int tipo_extraccion [, string prefijo]])
Esta
función
se
utiliza
para
importar
variables
desde
una
matriz
a
la
tabla
de
símbolos
actual
.
Toma
la
matriz
asoiativa
matriz_vars
y
trata
las
claves
como
nombres
de
variable
y
los
valores
como
los
valores
de
éstas
.
Para
cada
par
clave
/
valor
creará
una
variable
en
la
tabla
de
símbolos
actual
,
sujeto
a
los
parámetros
tipo_extraccion
y
prefijo
.
extract(
)
controla
las
colisiones
con
las
variables
que
ya
existen
.
La
forma
de
tratar
éstas
se
determina
por
el
tipo_extraccion
.
Puede
tener
únicamente
uno
de
los
siguientes
valores
:
- EXTR_OVERWRITE
-
Si
hay
colisión
,
sobreescribe
la
variable
existente
.
- EXTR_SKIP
-
Si
hay
colisión
,
no
sobreescribas
la
variable
existente
.
- EXTR_PREFIX_SAME
-
Si
hay
una
colisión
,
añade
el
prefijo
a
la
nueva
variable
.
- EXTR_PREFIX_ALL
-
Añade
el
prefijo
a
todas
las
variables
.
Si
no
se
especifica
tipo_extraccion
,
se
asume
que
vale
EXTR_OVERWRITE
.
Nótese
que
el
prefijo
sólo
se
necisita
si
tipo_extraccion
vale
EXTR_PREFIX_SAME
o
EXTR_PREFIX_ALL
.
extract(
)
comprueba
si
cada
clave
es
un
nombre
válido
de
variable
,
y
sólo
lo
importa
si
lo
es
.
Nota
:
N.T.
:
En
el
caso
español
,
no
valdría
"
año
"
como
nombre
variable
(pero
sí
como
clave
en
una
matriz
cualquiera
)
.
Un
uso
posible
para
extract
sería
importar
en
la
tabla
de
símbolos
las
variables
contenidas
en
la
matriz
asociativa
que
devuelve
wddx_deserialize(
)
.
Ejemplo
1
.
Ejemplo
de
extract(
)
php
?
/
*
Suponemos
que
$matriz_var
es
una
matriz
devuelta
por
wddx_deserialize
*
/
$tamano
=
"
grande"
;
$matriz_var
=
array
("color
"
=
"azul"
,
"tamano
"
=
"media"
,
"forma
"
=
"esfera")
;
extract
($matriz_var
,
EXTR_PREFIX_SAME
,
"wddx")
;
print
"$color
,
$tamano
,
$forma
,
$wddx_tamano\n"
;
?
|
|
El
programa
anterior
producirá
:
azul
,
grande
,
esfera
,
media
|
La
variable
$tamano
no
fue
sobreescrita
porque
especificamos
EXTR_PREFIX_SAME
,
que
provocó
la
creación
de
$wddx_tamano
.
Si
se
hubiera
especificado
EXTR_SKIP
,
$wddx_tamano
ni
siquiera
habría
sido
creada
.
EXTR_OVERWRITE
habría
provocado
que
$tamano
tuviera
el
valor
"
media
"
,
y
EXTR_PREFIX_ALL
habría
provocado
que
aparecieran
nuevas
variables
llamadas
$wddx_color
,
$wddx_tamano
,
y
$wddx_forma
.