Inicio > Cursos > PHP > Funciones y Parámetros
PHPFundamentos de PHPLección 6 de 15

Funciones y Parámetros

Las funciones en PHP agrupan código reutilizable. Se declaran con function nombreFuncion($parametros) { return $resultado; }. Los parámetros pueden tener valores por defecto: function saludar($nombre, $saludo = "Hola") permite llamar la función con o sin el segundo parámetro. PHP 8 añadió argumentos nombrados: saludar(nombre: "Ana", saludo: "Hey") que permite pasar argumentos en cualquier orden, muy útil para funciones con muchos parámetros opcionales.

PHP tiene varios tipos de funciones compactas. Las funciones anónimas (closures) se pueden asignar a variables: $doble = function($n) { return $n * 2; }. Las arrow functions (PHP 7.4+) con fn($n) => $n * 2 son aún más concisas y capturan automáticamente las variables del contexto externo sin necesitar use.

Las funciones variádicas con ...$args aceptan cualquier número de argumentos adicionales. El paso por referencia con &$variable modifica la variable original dentro de la función.

<?php
// Función con tipos (PHP 7+)
function saludar(string $nombre): string {
    return "¡Hola, $nombre!";
}
echo saludar("Ana"); // ¡Hola, Ana!

// Parámetros por defecto
function crear_usuario(
    string $nombre,
    int $edad = 18,
    string $rol = "usuario"
): array {
    return compact("nombre", "edad", "rol");
}
$u = crear_usuario("Bob"); // edad=18, rol=usuario

// Tipo nullable
function buscar(string $id): ?array {
    if ($id === "1") return ["id" => 1, "nombre" => "Ana"];
    return null;
}

// Funciones variádicas
function sumar(int ...$numeros): int {
    return array_sum($numeros);
}
echo sumar(1, 2, 3, 4, 5); // 15

// Pasar por referencia
function incrementar(int &$valor, int $cant = 1): void {
    $valor += $cant;
}
$x = 10;
incrementar($x, 5);
echo $x; // 15

// Closures (funciones anónimas)
$multiplicar = function(int $a, int $b): int {
    return $a * $b;
};
echo $multiplicar(3, 4); // 12

// Arrow functions (PHP 7.4+)
$cuadrado = fn($n) => $n * $n;
echo $cuadrado(5); // 25

// Funciones como argumentos
$resultado = array_map(fn($n) => $n * 2, [1, 2, 3]);
// [2, 4, 6]
Consejo💡 Las arrow functions (fn) capturan automáticamente variables del scope externo. Los closures necesitan use ($var) para capturar variables del exterior.
← Bucles y Control de FlujoArrays Indexados y Asociativos →

Practica esta lección

Resuelve los ejercicios del curso de PHP en la app, gratis y con corrección automática.

Empezar a practicar