0Pricing
PHP Academy · Lección

Definición y llamada de funciones

Cree sus propias funciones con parámetros y valores de retorno.

Definición y llamada de funciones es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de PHP Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de PHP Academy incluye 4 lecciones en total.

¿Por qué utilizar funciones?

Las funciones permiten encapsular lógica reutilizable y darle un nombre para poder llamarla varias veces sin repetir código. Ventajas:

  • Evitar la repetición (principio DRY)
  • Facilitar las pruebas y la depuración
  • Crear código autoexplicativo

Definir una función

Utilice la palabra clave function, un nombre, parámetros opcionales y un cuerpo:

<?php
function greet(string $name): string {
    return 'Hello, ' . $name . '!';
}

echo greet('Alice'); // Hello, Alice!

Parámetros y argumentos

Los parámetros son los nombres de variables de la definición; los argumentos son los valores reales que se pasan al realizar la llamada:

<?php
function add(int $a, int $b): int {
    return $a + $b;  // $a and $b are parameters
}

$sum = add(3, 4);  // 3 and 4 are arguments
echo $sum;  // 7

Valores de retorno

Utilice return para devolver un valor a quien realiza la llamada. Una función sin return devuelve NULL:

<?php
function square(float $n): float {
    return $n * $n;
}

function logMessage(string $msg): void {
    echo '[LOG] ' . $msg . PHP_EOL;
    // void functions must not return a value
}

echo square(4);        // 16
logMessage('started'); // [LOG] started

Pasar por valor frente a pasar por referencia

De forma predeterminada, PHP pasa los argumentos por valor (una copia). Anteponiéndoles &, los pasa por referencia:

<?php
function doubleByValue(int $n): void {
    $n *= 2;  // changes only the local copy
}

function doubleByRef(int &$n): void {
    $n *= 2;  // changes the original
}

$x = 5;
doubleByValue($x);
echo $x; // 5 — unchanged

doubleByRef($x);
echo $x; // 10 — changed

Varios puntos de retorno

Una función puede tener varias instrucciones return para salir antes:

<?php
function divide(float $a, float $b): ?float {
    if ($b === 0.0) {
        return null;  // early return on error
    }
    return $a / $b;
}

var_dump(divide(10, 0));   // NULL
echo divide(10, 2);         // 5

Elevación de funciones

Las funciones de PHP están disponibles en todo el archivo independientemente de dónde se definan; a diferencia de JavaScript, la mayoría de las funciones de PHP NO necesitan declararse antes de utilizarse:

<?php
echo double(5);  // 10 — works even though double is defined below

function double(int $n): int {
    return $n * 2;
}

// Exception: functions inside conditionals ARE position-sensitive

Funciones recursivas

Una función que se llama a sí misma es recursiva. Asegúrese siempre de incluir un caso base para evitar una recursión infinita:

<?php
function factorial(int $n): int {
    if ($n <= 1) return 1;  // base case
    return $n * factorial($n - 1);  // recursive call
}

echo factorial(5);  // 120

Declaraciones de tipos

PHP 7+ admite sugerencias de tipos para parámetros y valores de retorno. PHP 8 añadió mixed, never y los tipos de intersección:

<?php
declare(strict_types=1);

function clamp(int $value, int $min, int $max): int {
    return max($min, min($max, $value));
}

echo clamp(150, 0, 100);  // 100
echo clamp(-5,  0, 100);  // 0
echo clamp(42,  0, 100);  // 42

Funciones definidas frente a funciones integradas

PHP incluye miles de funciones integradas. Siempre puede comprobar en tiempo de ejecución si existe una función:

<?php
if (function_exists('mb_strlen')) {
    echo mb_strlen('こんにちは');  // 5 — correct multi-byte length
} else {
    echo strlen('こんにちは');      // 15 — byte count, wrong for UTF-8
}

Devolver varios valores

Devuelva varios valores devolviendo un array y desestructurándolo en el lugar de la llamada:

<?php
function minMax(array $arr): array {
    return [min($arr), max($arr)];
}

[$min, $max] = minMax([3, 1, 7, 2, 9]);
echo "Min: $min, Max: $max";  // Min: 1, Max: 9

Comprobación rápida

¿Qué devuelve una función de PHP sin una instrucción return explícita?

Resumen: funciones

Aspectos esenciales de las funciones de PHP:

  • Defínalas con function name(params): returnType
  • Pase los argumentos por valor (opción predeterminada) o por referencia mediante &
  • Las funciones sin return devuelven NULL
  • La recursión requiere un caso base
  • Las funciones están disponibles en todo el archivo (elevación)

A continuación: parámetros predeterminados y variables.

Preguntas frecuentes

¿La lección «Definición y llamada de funciones» es gratis?

Sí — el texto completo de «Definición y llamada de funciones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de PHP Academy, actualiza a CoddyKit PRO. El curso de PHP Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Definición y llamada de funciones»?

Cree sus propias funciones con parámetros y valores de retorno. Practicas PHP Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar PHP Academy?

No se requiere experiencia previa. PHP Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Definición y llamada de funciones»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de PHP Academy?

Sí. Cada lección de PHP Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Definición y llamada de funciones
  2. Parámetros predeterminados y variádicos
  3. Ámbito de las variables: local y global
  4. Funciones anónimas y closures
← Volver a PHP Academy