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_