Fundamentos

Funciones en PHP

Objetivos de Aprendizaje
  • Entender qué son las funciones y cómo se utilizan en PHP
  • Aprender a crear y llamar funciones personalizadas
  • Comprender los parámetros de función y valores por defecto
  • Conocer el concepto de retorno de valores en funciones
  • Explorar funciones con número variable de argumentos
  • Entender el ámbito de las variables en las funciones

¿Qué son las Funciones?

Una función es un bloque de código que realiza una tarea específica y puede ser reutilizado a lo largo de tu programa. Las funciones ayudan a organizar tu código, evitar la repetición y hacerlo más legible y mantenible.

PHP ofrece más de 1000 funciones integradas, y también nos permite crear nuestras propias funciones personalizadas.

Sintaxis básica de una función

Estructura de una función en PHP
function nombreFuncion($parametro1, $parametro2, ...) {
    // Código a ejecutar
    
    return $valor; // Opcional: valor a devolver
}
  • function: Palabra clave para declarar una función
  • nombreFuncion: Identificador de la función (sigue las mismas reglas que los nombres de variables)
  • parámetros: Datos que la función puede recibir (opcionales)
  • return: Instrucción para devolver un valor (opcional)

Crear y llamar una función simple

Veamos un ejemplo básico de cómo crear y llamar a una función:

ejemplo.php

<?php
function saludar($nombre) {
    echo "¡Hola, $nombre! ¿Cómo estás?";
}

saludar("Juan");
?>
                                
Buenas prácticas: Los nombres de las funciones deben ser descriptivos y seguir la convención camelCase (ej: calcularTotal(), obtenerUsuario()).

Funciones con Parámetros

Los parámetros son variables que se utilizan para recibir valores cuando se llama a la función.

Parámetros obligatorios

Por defecto, los parámetros son obligatorios y deben proporcionarse en el mismo orden en que están definidos:

ejemplo.php

<?php
function calcularAreaRectangulo($longitud, $anchura) {
    $area = $longitud * $anchura;
    echo "El área del rectángulo es: $area";
}

calcularAreaRectangulo(10, 5);
?>
                                

Parámetros con valores por defecto

Los parámetros pueden tener valores por defecto que se utilizan cuando no se proporciona un argumento:

ejemplo.php

<?php
function calcularAreaCirculo($radio, $pi = 3.14159) {
    $area = $pi * $radio * $radio;
    echo "El área del círculo es: $area";
}

calcularAreaCirculo(5);
calcularAreaCirculo(5, 3.14);
?>
                                
Importante: Los parámetros con valores por defecto deben colocarse después de los parámetros sin valores por defecto. De lo contrario, PHP generará un error.

Número variable de argumentos

A partir de PHP 5.6, podemos usar el operador ... (operador de dispersión o spread) para crear funciones que acepten un número variable de argumentos:

ejemplo.php

<?php
function sumar(...$numeros) {
    $total = 0;
    foreach ($numeros as $numero) {
        $total += $numero;
    }
    return $total;
}

echo "La suma de 3, 5 y 8 es: " . sumar(3, 5, 8);
?>
                                

Funciones con Retorno de Valores

Las funciones pueden devolver valores mediante la instrucción return. Cuando se ejecuta un return, la función termina y devuelve el valor especificado.

ejemplo.php

<?php
function multiplicar($a, $b) {
    $resultado = $a * $b;
    return $resultado;
}

$producto = multiplicar(4, 5);
echo "4 x 5 = $producto";
?>
                                

Una función puede devolver múltiples valores usando un array o, a partir de PHP 7, utilizando la desestructuración de arrays:

ejemplo.php

<?php
function obtenerPersona() {
    $nombre = "Juan";
    $edad = 25;
    return [$nombre, $edad];
}

[$nombre, $edad] = obtenerPersona();
echo "Nombre: $nombre, Edad: $edad";
?>
                                

Funciones Anónimas (Closures)

Las funciones anónimas o closures son funciones sin nombre, que pueden asignarse a variables o pasarse como argumentos a otras funciones:

ejemplo.php

<?php
$saludo = function($nombre) {
    return "¡Hola, $nombre!";
};

echo $saludo("Ana");
?>
                                
Ventajas: Las funciones anónimas son útiles para operaciones breves y puntuales, especialmente cuando se trabaja con funciones de orden superior como array_map, array_filter, etc.

Funciones de Flecha (Arrow Functions)

A partir de PHP 7.4, PHP introdujo funciones de flecha, que son una sintaxis más concisa para funciones anónimas simples:

ejemplo.php

<?php
$numeros = [1, 2, 3];

$cuadrados = array_map(fn($n) => $n * $n, $numeros);

echo "Cuadrados: " . implode(", ", $cuadrados);
?>
                                
Limitaciones de las funciones de flecha:
  • Solo pueden contener una única expresión (no bloques de código)
  • Siempre devuelven el valor de la expresión (no necesitan return)
  • Capturan automáticamente las variables externas (no necesitan use)

Funciones Útiles de PHP

PHP tiene muchas funciones integradas útiles:

Funciones para strings
  • strlen($str): Devuelve la longitud de una cadena
  • strpos($haystack, $needle): Busca un substring en una cadena
  • str_replace($search, $replace, $subject): Reemplaza texto
  • strtolower($str) / strtoupper($str): Convierte a minúsculas/mayúsculas
  • trim($str): Elimina espacios en blanco al principio y al final
Funciones para arrays
  • count($array): Cuenta los elementos de un array
  • sort($array) / rsort($array): Ordena un array
  • array_push($array, $value): Añade un elemento al final
  • array_merge($array1, $array2): Fusiona arrays
  • in_array($needle, $haystack): Comprueba si un valor existe
ejemplo.php

<?php
$texto = "Hola, Mundo PHP!";
echo "Texto original: $texto";
?>
                                

Documentación de Funciones

Es una buena práctica documentar tus funciones para facilitar su uso y mantenimiento. PHP usa un formato similar a JavaDoc llamado PHPDoc:

ejemplo.php

<?php
/**
 * Calcula el total con impuestos para un precio dado.
 *
 * @param float $precio El precio sin impuestos
 * @param float $tasaImpuesto La tasa de impuesto (por defecto: 0.16 o 16%)
 * @return float El precio con impuestos aplicados
 */
function calcularTotalConImpuestos($precio, $tasaImpuesto = 0.16) {
    if ($precio < 0) {
        throw new InvalidArgumentException("El precio no puede ser negativo");
    }
    $total = $precio * (1 + $tasaImpuesto);
    return $total;
}
?>
                                
PHPDoc: Muchos IDEs como VS Code, PhpStorm, etc., utilizan los comentarios PHPDoc para proporcionar autocompletado, verificación de tipos y documentación en línea.

Ejercicio Práctico

Calculadora de estadísticas

Crea un conjunto de funciones para calcular estadísticas básicas de un conjunto de números:

  1. Crea una función calcularPromedio($numeros) que reciba un array de números y devuelva su promedio
  2. Crea una función encontrarMaximo($numeros) que devuelva el número más alto
  3. Crea una función encontrarMinimo($numeros) que devuelva el número más bajo
  4. Crea una función calcularEstadisticas($numeros) que utilice las funciones anteriores y devuelva un array asociativo con todas las estadísticas

Pistas:

  • Puedes usar un array de prueba como: $datos = [15, 8, 23, 10, 42, 7, 30];
  • Para el promedio, suma todos los valores y divide por la cantidad de elementos
  • También puedes usar las funciones integradas array_sum() y count()
  • Para máximos y mínimos puedes usar max() y min() o implementarlos manualmente