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; // 7Valores 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] startedPasar 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 — changedVarios 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); // 5Elevació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-sensitiveFunciones 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); // 120Declaraciones 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); // 42Funciones 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: 9Comprobació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
- Definición y llamada de funciones
- Parámetros predeterminados y variádicos
- Ámbito de las variables: local y global
- Funciones anónimas y closures