Volver a la página principal
miércoles 25 septiembre 2024
17

Cómo usar compact() en PHP

La función compact() en PHP se utiliza para crear un array asociativo a partir de las variables y sus valores actuales en el ámbito donde se llama. Es útil cuando necesitas pasar varias variables a una función o a una plantilla sin escribirlas una por una, simplemente generando un array de forma dinámica con los nombres de las variables como claves.

¿Qué es compact() en PHP?

compact() toma una serie de nombres de variables (como cadenas o arrays de cadenas) y devuelve un array donde las claves son los nombres de las variables y los valores son los valores actuales de esas variables. Si alguna de las variables no existe, no se incluye en el array resultante.

Ejemplos de uso de compact() en PHP

Ejemplo básico

En este ejemplo, compact() convierte las variables $nombre y $edad en un array asociativo.

<?php
$nombre = "Juan";
$edad = 30;

// Crear un array usando compact
$persona = compact("nombre", "edad");

print_r($persona);
?>

Salida:

Array
(
    [nombre] => Juan
    [edad] => 30
)

Usando múltiples variables y arrays

Puedes pasar varias variables o incluso un array de nombres de variables a compact().

<?php
$ciudad = "Madrid";
$pais = "España";
$continente = "Europa";

// Crear un array de nombres de variables
$ubicacion = compact("ciudad", "pais", "continente");

print_r($ubicacion);
?>

Salida:

Array
(
    [ciudad] => Madrid
    [pais] => España
    [continente] => Europa
)

Uso de arrays de cadenas en compact()

compact() también acepta un array de cadenas como argumento para generar un array asociativo.

<?php
$animal = "Perro";
$color = "Marrón";
$edad = 5;

$variables = ["animal", "color", "edad"];

// Crear un array usando un array de nombres de variables
$informacion = compact($variables);

print_r($informacion);
?>

Salida:

Array
(
    [animal] => Perro
    [color] => Marrón
    [edad] => 5
)

Variables inexistentes

Si una de las variables no existe, simplemente no se incluye en el array.

<?php
$fruta = "Manzana";

// Intentar incluir una variable inexistente
$resultado = compact("fruta", "verdura");

print_r($resultado);
?>

Salida:

Array
(
    [fruta] => Manzana
)

Consideraciones

  • Variables inexistentes: Si el nombre de la variable no existe en el ámbito, compact() simplemente la omitirá del array generado.
  • Nombres de variables como cadenas: Los nombres de las variables que pasas a compact() deben estar entre comillas (ya que son nombres, no referencias directas a las variables).

Uso común

La función compact() es comúnmente utilizada en frameworks o sistemas de plantillas donde se pasa un conjunto de variables a una vista o función de forma eficiente.

Referencia oficial

Para más detalles, consulta la documentación oficial de PHP: Documentación de compact()

Etiquetas:
php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer