PHP extract
PHP extract importa variables dentro de la tabla de símbolos actual desde un array asociativo. Esto es un poco difícil de entender, pero podemos verlo como si hiciera lo inverso a compact. Vea el primer ejemplo
si mi array asociativo es como se ve en la tabla:
nombre | Pepe |
apellido | Galeano |
edad | 42 |
Obtendré las variables $nombre
, $apellido
y $edad
con los valores "Pepe"
, "Galeano"
, 42
extract(array &$array, int $flags = EXTR_OVERWRITE, string $prefix = ""): int
Parametros
$array
-un array asociativo
EXTR_PREFIX_ALL
o EXTR_PREFIX_INVALID
como flags
$flags
– este parametro determina la La manera en que las claves no-válidas/numéricas y las colisiones son tratadas. EXTR_OVERWRITE
es la flag por defecto
EXTR_OVERWRITE
– Si hay una colisión, sobrescribe la variable existente en el ambito en el que este con el valor del array asociativo. Por ejemplo si existe $x= 101 y el array asociativo tiene un valor «x» => 207 ahora $x tendra el valor 207EXTR_SKIP
– si hay una variable que colisione esta no se sobrescribirá.EXTR_PREFIX_SAME
– Si hay una colisión, prefija el nombre de la variable con el prefijo especificado en $prefixEXTR_PREFIX_ALL
– Prefija todos los nombres de variables con el valor dado en$prefix
EXTR_PREFIX_INVALID
– Sólo prefija los nombres de variables no-válidas/numéricas con el valor de $prefix
.EXTR_IF_EXISTS
– Sobrescribe la variable sólo si ya existe en la tabla de símbolos actual, de otro modo no hace nada. Esto es útil para definir una lista de variables válidas y después extraer solo aquellas variables que se definieron fuera de$_REQUEST
, por ejemplo.EXTR_PREFIX_IF_EXISTS
– Crea nombres de variables con prefijo solo si la versión no prefijada de la misma variable existe en la tabla de símbolos actual.EXTR_REFS
– Extrae las variables como referencias. Esto significa que los valores de las variables importadas están todavía referenciados por los valores del parámetro$array
. Se puede usar esta bandera por sí misma o combinarla con cualquier otra bandera usando el operador OR en$flags
.
$prefix
-valor con el que se prefijara la variable si es necesario. El prefijo es separado del nombre del key por _
estos son los flags con los que necesitaras de $prefix
:
EXTR_PREFIX_SAME
EXTR_PREFIX_ALL
EXTR_PREFIX_INVALID
EXTR_PREFIX_IF_EXISTS
Retornos
Retorna un entero que es el numero de variables que fueron importadas con exito.
Ejemplos de PHP extract
// Un arreglo asociativo con algunas variables $data = [ 'marca' => 'citroen', 'nombre'=>'c4', 'precio' => '19500', 'moneda' => 'euros', ]; // Usando extract para importar las variables extract($data); // Ahora puedes usar las variables como si se hubieran declarado individualmente echo "Marca:".$marca."<br/>"; echo "Nombre: $nombre<br/>"; echo "Precio: $precio<br/>"; echo "Moneda: $moneda<br/>";
Marca:citroen Nombre: c4 Precio: 19500 Moneda: euros