Saltar al contenido
Portada » Lenguajes » 6. Funciones en PHP

6. Funciones en PHP

Funciones en PHP. Hasta ahora hemos trabajado con estructuras básicas de control y manipulación de datos, pero a medida que los programas se vuelven más grandes y complejos, organizar el código se vuelve fundamental. Para esto, las funciones juegan un papel esencial.

En este capítulo aprenderás:

  • Qué es una función y por qué se utilizan.
  • Cómo definir y utilizar tus propias funciones en PHP.
  • Qué son los parámetros y valores de retorno.
  • Qué son las funciones anónimas y las funciones flecha, útiles para escribir código compacto y moderno.

Entender bien este capítulo te permitirá escribir código modular, reutilizable y más mantenible.

6.1 Definición y uso de funciones

¿Qué es una función?

Una función es un bloque de código con nombre propio que se puede ejecutar (invocar) en cualquier parte del programa. Nos ayuda a reutilizar código, a evitar repeticiones y a organizar mejor nuestras aplicaciones.

Sintaxis básica

function nombreDeLaFuncion() {
// Código a ejecutar
}

Ejemplo básico

function saludar() {
echo "Hola, bienvenido al curso de PHP.";
}

saludar(); // Llama a la función

Explicación:

  • function es la palabra clave la que se define una función.
  • saludar es el nombre de la función y que utilizaremos para invocarla.
  • Al llamar a saludar(), se ejecuta el contenido de la función. A las funciones se les invoca con el nombre de la función seguido de ().

Buenas prácticas:

  • Usa nombres descriptivos.
  • Evita funciones muy largas.
  • Una función debe realizar una sola tarea claramente definida.

6.2 Parámetros y Retorno de Valores en Funciones PHP

Una de las características más poderosas de las funciones es la capacidad de recibir información y devolver resultados. Esto permite que nuestras funciones sean dinámicas, reutilizables y versátiles, ya que no están limitadas a una única tarea estática.

¿Qué son los parámetros?

Los parámetros (también llamados argumentos cuando se pasan al invocar la función) son variables que se definen dentro de los paréntesis de una función y que reciben valores cuando se llama a esa función para ser utilizados dentro de la misma.

Sintaxis básica:

function nombreFuncion($parametro1, $parametro2) {
// Código que usa esos parámetros
}

Ejemplo 1 – Saludar a una persona:

function saludarPersona($nombre) {
echo "Hola, $nombre.";
}

saludarPersona("Carlos"); // Salida: Hola, Carlos.

Ejemplo 2 – Función con varios parámetros:

function sumar($a, $b) {
echo "La suma es: " . ($a + $b);
}

sumar(5, 3); // Salida: La suma es: 8

Tipos de paso de parámetros

PHP permite dos formas de pasar argumentos a una función:

– Paso por valor (por defecto)

Cuando pasas una variable por valor, se pasa una copia, y cualquier modificación no afecta al valor original fuera de la función.

function cambiarValor($numero) {
$numero = 100;
}

$a = 5;
cambiarValor($a);
echo $a; // Salida: 5 (no cambia)

– Paso por referencia (usando &)

Si deseas que una función modifique la variable original, pasa el parámetro por referencia:

function cambiarValor(&$numero) {
$numero = 100;
}

$a = 5;
cambiarValor($a);
echo $a; // Salida: 100 (sí cambia)

Parámetros por defecto (opcionales)

PHP permite definir valores por defecto para parámetros. Si al llamar a la función no se proporciona ese valor, se usará el que está por defecto.

function saludar($nombre = "invitado") {
echo "Hola, $nombre.";
}

saludar(); // Salida: Hola, invitado.
saludar("Lucía"); // Salida: Hola, Lucía.

Regla importante:
Los parámetros con valor por defecto deben estar al final de la lista de parámetros.

Forma correcta:

function ejemplo($a, $b = 2) {}

Forma Incorrecta:

function ejemplo($a = 2, $b) {} // Error de sintaxis

Tipado de parámetros (PHP 7+)

Desde PHP 7 es posible especificar el tipo de datos de los parámetros, como int, float, string, bool, e incluso arrays y objetos.

Esto hace que el código sea más robusto y previene errores.


function multiplicarNumeros(float $a, float $b) {
return $a * $b;
}

echo multiplicarNumeros(3.5, 2); // 7

PHP convertirá valores automáticamente si es posible (por ejemplo, 2 se convierte a 2.0).

Tipado del valor de retorno (PHP 7+)

Además del tipo de los parámetros, también puedes indicar el tipo del valor devuelto usando : tipo después del paréntesis.

function dividir(float $a, float $b): float {
return $a / $b;
}

Si el valor retornado no concuerda con el tipo declarado, PHP generará un error fatal (si se usa declare(strict_types=1) al inicio del script).

¿Qué es el valor de retorno?

Una función no siempre necesita mostrar directamente un resultado. A veces es mejor devolver el resultado y dejar que otro bloque del código lo utilice. El varlor de retorno se envía con la palabra reservada return.

Sintaxis del retorno:

function nombreFuncion($parametros) {
return $valor;
}

📌 Ejemplo práctico:

function obtenerEdad() {
return 25;
}

$edad = obtenerEdad();
echo "Tu edad es $edad"; // Tu edad es 25

Ejemplo con parámetros:

function elevarAlCuadrado($numero) {
return $numero * $numero;
}

echo elevarAlCuadrado(6); // 36

Puedes almacenar el resultado en una variable o usarlo directamente.

Funciones que devuelven booleanos

A menudo creamos funciones que devuelven true o false para usarlas en condiciones.

function esPar($numero): bool {
return $numero % 2 === 0;
}

if (esPar(4)) {
echo "Es par";
} else {
echo "Es impar";
}

6.3 Funciones anónimas y funciones flecha en PHP

En PHP, además de las funciones tradicionales con nombre, también podemos utilizar funciones anónimas y funciones flecha. Estas son formas más compactas y flexibles de declarar funciones, especialmente útiles cuando queremos usarlas como valores, pasarlas como argumento o asignarlas a una variable.

¿Qué es una función anónima?

Una función anónima es una función sin nombre, que se guarda dentro de una variable o se pasa directamente como parámetro a otra función.

Sintaxis básica:

$variable = function($param1, $param2) {
// código
return $resultado;
};

Ejemplo básico:

$suma = function($a, $b) {
return $a + $b;
};

echo $suma(4, 5); // Salida: 9

Aquí, la función se asigna a la variable $suma, y luego se puede invocar como si fuera una función normal.

Usos comunes de funciones anónimas

  1. Callbacks: Cuando pasamos una función como parámetro a otra, como en array_map, array_filter, etc.
$numeros = [1, 2, 3, 4, 5];
$cuadrados = array_map(function($n) {
return $n * $n;
}, $numeros);

print_r($cuadrados); // [1, 4, 9, 16, 25]
  1. Encapsular lógica temporal: Útil cuando una función solo se necesita en un contexto local.

Acceso a variables externas con use

Si queremos que una función anónima tenga acceso a una variable externa del entorno donde se declara, debemos usar la cláusula use.

Ejemplo con use:

$factor = 2;

$duplicar = function($numero) use ($factor) {
return $numero * $factor;
};

echo $duplicar(5); // Salida: 10

Sin use, la variable $factor no estaría disponible dentro de la función anónima.

Funciones Flecha (Arrow Functions) – PHP 7.4+

Las funciones flecha (arrow functions) son una forma más compacta y moderna de escribir funciones anónimas, introducidas en PHP 7.4.

Sintaxis básica:

$funcion = fn($param1, $param2) => expresión;

La función devuelve automáticamente el resultado de la expresión, sin necesidad de return ni llaves {}.

Ejemplo de función flecha:

$suma = fn($a, $b) => $a + $b;

echo $suma(3, 7); // Salida: 10

Comparación: función anónima vs. función flecha

CaracterísticaFunción anónimaFunción flecha
SintaxisMás larga, requiere {} y returnMás corta, tipo flecha =>
Retorno implícito❌ No (se necesita return)✅ Sí (devuelve directamente el resultado)
Acceso a variables externasManual con useAutomático (captura automáticamente)
Requiere PHPPHP 5.3+PHP 7.4+

Ejemplo comparado: función anónima vs. flecha

Función anónima:

$iva = 0.21;

$calcularTotal = function($precio) use ($iva) {
return $precio + ($precio * $iva);
};

echo $calcularTotal(100); // 121

Función flecha:

$iva = 0.21;

$calcularTotal = fn($precio) => $precio + ($precio * $iva);

echo $calcularTotal(100); // 121

Como puedes ver, la función flecha es más concisa y más legible, especialmente para funciones simples.


Recapitulando

En este capítulo hemos explorado a fondo el concepto de funciones, una herramienta fundamental en cualquier lenguaje de programación, incluido PHP. Aprendimos que:

  • Una función permite encapsular un bloque de código reutilizable que puede recibir parámetros y devolver valores.
  • Vimos cómo declarar funciones tradicionales, cómo pasar argumentos, cómo retornar datos y cómo trabajar con tipado tanto en parámetros como en valores de retorno.
  • Se explicó el uso de valores por defecto en parámetros y cómo definir funciones con tipos primitivos (como int, float, string, bool, etc.).
  • Aprendimos sobre funciones anónimas, útiles para pasar como argumento a otras funciones o almacenar en variables.
  • Finalmente, vimos las funciones flecha (arrow functions), que simplifican la sintaxis en funciones cortas, muy comunes en programación funcional y callbacks.

Veamos los ejercicios del capítulo.

Ejercicio 1: Crear una función para calcular el área de un rectángulo
Enunciado:
Crea una función llamada calcularAreaRectangulo que reciba dos parámetros: base y altura, y devuelva el área del rectángulo. Luego, muestra el resultado para un rectángulo de 8 x 5.

Código:

<?php
function calcularAreaRectangulo($base, $altura) {
    return $base * $altura;
}

echo "Área del rectángulo: " . calcularAreaRectangulo(8, 5);
?>

Explicación:
Se define una función que recibe dos parámetros, los multiplica y devuelve el resultado. En este caso, 8 × 5 = 40.

Ejercicio 2: Usar una función con parámetros por defecto
Enunciado:
Escribe una función saludarUsuario que reciba un nombre y salude. Si no se pasa ningún nombre, debe decir «Hola, invitado».

Código:

<?php
function saludarUsuario($nombre = "invitado") {
    echo "Hola, $nombre!";
}

saludarUsuario();         // Hola, invitado!
saludarUsuario("Laura");  // Hola, Laura!
?>

Explicación:
El parámetro $nombre tiene un valor por defecto, por lo que si no se proporciona uno, se usará "invitado".

Ejercicio 3: Usar una función flecha para calcular el doble de un número
Enunciado:
Crea una función flecha llamada $doble que reciba un número y devuelva su doble. Luego, úsala con los valores 6 y 15.

Código:

<?php
$doble = fn($n) => $n * 2;

echo $doble(6) . PHP_EOL;   // 12
echo $doble(15);            // 30
?>

Explicación:
La función flecha fn($n) => $n * 2 toma un número y devuelve el resultado multiplicado por 2, sin necesidad de return.

Bibliografía de programación en PHP.

LogoPHP. Funciones en PHP

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *