PHP Modermo (Arrays)
Exelentes fucniones o trucos para php, que se han ido agregando en las ultimas versiones de PHP, en este articulo veremos los arreglos.
Arreglos
Arreglos
- Desestructuración y operadores Rest / Spread en PHP
Permite extraer valores de un array y asignarlos a variables de forma directa.
$array = [1, 2, 3]; [$a, $b, $c] = $array;
También se pueden omitir elementos:
[, , $c] = $array; // $c = 3
Y desestructurar por claves en arrays asociativos:
$array = ['a' => 1, 'b' => 2, 'c' => 3]; ['c' => $c, 'a' => $a] = $array;
Ejemplos practicos:
Ejemplo 1: Obtener datos de una consulta o API (Útil cuando recibes datos en un array ordenado.)
$user = ['Juan', 'Perez', 30]; [$nombre, $apellido, $edad] = $user;
Ejemplo 2: Ignorar valores que no necesitas
$config = ['localhost', 'root', 'secret', 'test_db']; [, $usuario, , $baseDatos] = $config;
Ejemplo 3: Arrays asociativos (muy común en JSON)
$response = [
'status' => 200,
'message' => 'OK',
'data' => ['id' => 5, 'name' => 'Producto']
];
['status' => $status, 'data' => $data] = $response;- Operador Spread (...)
Permite expandir un array en argumentos de una función.
foo(...$array);
También se puede usar para unir arrays (PHP 7.4+):
$result = [...$a, ...$b];
Ejemplos practicos:
Ejemplo 1: Pasar parámetros a una función (Limpio y legible, sin usar call_user_func_array)
$coords = [10, 20];
function mover($x, $y) {
echo "Mover a ($x, $y)";
}
mover(...$coords);Ejemplo 2: Unir listas (arrays)
$frontend = ['HTML', 'CSS']; $backend = ['PHP', 'MySQL']; $skills = [...$frontend, ...$backend];
- Operador Rest (funciones variádicas)
Permite recoger múltiples argumentos en un solo parámetro.
function foo($primero, ...$otros) {
// $otros es un array
}Los parámetros Rest pueden tener tipado (PHP 7.0+):
function foo($primero, string ...$otros) {}Ejemplos practicos:
Ejemplo 1: Carrito de compras (Cuando no sabes cuántos valores recibirás.)
function totalCarrito(float ...$precios): float {
return array_sum($precios);
}
$total = totalCarrito(10.5, 20, 5.75);Ejemplo 2: Validación de roles
function tieneRol(string $usuario, string ...$roles): bool {
return in_array($usuario, $roles);
}
tieneRol('admin', 'admin', 'editor', 'user');Ejemplo 3: Ejemplo combinado (Rest + Spread) (Caso real: impuestos, envíos, extras.)
$extras = [5, 10];
function precioFinal(float $base, float ...$extras): float {
return $base + array_sum($extras);
}
echo precioFinal(100, ...$extras);Resumen rápido
- Desestructuración → extraer datos fácilmente
- Spread → expandir arrays
- Rest → recoger múltiples argumentos
En proximos articulos veremos nuevas funciones de PHP moderno.
Deja un comentario: