(PHP 4, PHP 5, PHP 7, PHP 8)
extract — Importa variables al símbolo actual desde un array
Importa variables desde un array a la tabla de símbolos actual.
Verifica cada clave para determinar si tiene un nombre de variable válido. También verifica colisiones con variables existentes en la tabla de símbolos.
array
Un array asociativo. Esta función trata las claves como nombres de variables y
los valores como valores de variables. Para cada par clave/valor creará
una variable en la tabla de símbolos actual, sujeto a los parámetros
flags y prefix.
Debe usar un array asociativo; un array indexado numéricamente
no producirá resultados a menos que use EXTR_PREFIX_ALL o
EXTR_PREFIX_INVALID.
flags
La forma en que se tratan las claves inválidas/numéricas y las colisiones se determina
por los flags de extracción. Puede ser uno de los
siguientes valores:
EXTR_OVERWRITEEXTR_SKIPEXTR_PREFIX_SAMEprefix.
EXTR_PREFIX_ALLprefix.
EXTR_PREFIX_INVALIDprefix.
EXTR_IF_EXISTSEXTR_PREFIX_IF_EXISTSEXTR_REFSarray. Puede usar este flag
por sí solo o combinarlo con cualquier otro flag mediante OR con los
flags.
Si flags no está especificado, se
asume que es EXTR_OVERWRITE.
prefix
Tenga en cuenta que prefix solo es requerido si
flags es EXTR_PREFIX_SAME,
EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID
o EXTR_PREFIX_IF_EXISTS. Si
el resultado con prefijo no es un nombre de variable válido, no se
importará a la tabla de símbolos. Los prefijos se separan automáticamente de
la clave del array por un carácter de guión bajo.
Devuelve el número de variables importadas con éxito a la tabla de símbolos.
Ejemplo #1 Ejemplo de extract()
<?php
$size = "large";
$var_array = array(
"color" => "blue",
"size" => "medium",
"shape" => "sphere"
);
extract($var_array, EXTR_PREFIX_SAME, "wddx");
echo "$color, $size, $shape, $wddx_size\n";
?>El ejemplo anterior mostrará:
blue, large, sphere, medium
La variable $size no fue sobrescrita porque especificamos
EXTR_PREFIX_SAME, lo que resultó en la creación de
$wddx_size. Si se hubiera especificado EXTR_SKIP,
entonces $wddx_size ni siquiera se habría creado.
EXTR_OVERWRITE habría hecho que $size tuviera
el valor "medium", y EXTR_PREFIX_ALL habría resultado en nuevas variables
llamadas $wddx_color,
$wddx_size, y
$wddx_shape.
No utilice extract() con datos no confiables, como
entrada de usuario
(ej. $_GET, $_FILES, etc.).
Si lo hace, asegúrese de usar uno de los valores de
flags que no sobrescriban, como
EXTR_SKIP y tenga en cuenta que debe extraer
en el mismo orden que está definido en
variables_order dentro del
php.ini.