PHP Academy · Lección

Parámetros predeterminados y variádicos

Utilice valores predeterminados y argumentos variádicos en las funciones de PHP.

Lección 2 de 413 pasos

Parámetros predeterminados y variádicos es una lección gratuita de PHP Academy en CoddyKit. Esta es la lección 2 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.

Valores predeterminados de los parámetros

Los valores predeterminados permiten omitir argumentos al realizar una llamada. El valor predeterminado se utiliza cuando no se pasa el argumento:

<?php
function createUser(string $name, string $role = 'viewer'): string {
    return "$name ($role)";
}

echo createUser('Alice');          // Alice (viewer)
echo createUser('Bob', 'admin');   // Bob (admin)

Reglas de los valores predeterminados

Reglas importantes para los parámetros predeterminados:

  • Los parámetros con valores predeterminados deben ir después de los parámetros obligatorios
  • Los valores predeterminados deben ser expresiones constantes, no llamadas a funciones ni variables
  • Los argumentos con nombre de PHP 8 flexibilizan el requisito del orden

Parámetros anulables

Use ?type para permitir NULL como argumento válido y establecer NULL como valor predeterminado:

<?php
function findUser(?int $id = null): string {
    if ($id === null) {
        return 'Searching all users';
    }
    return "User #$id";
}

echo findUser();    // Searching all users
echo findUser(42);  // User #42

Funciones variádicas con ...

Use ... delante de un parámetro para aceptar un número variable de argumentos como un array:

<?php
function sum(int ...$numbers): int {
    return array_sum($numbers);
}

echo sum(1, 2, 3);        // 6
echo sum(10, 20, 30, 40); // 100

Parámetros variádicos con parámetros obligatorios

Puede combinar parámetros obligatorios con un parámetro variádico al final:

<?php
function logMessage(string $level, string ...$messages): void {
    foreach ($messages as $msg) {
        echo "[$level] $msg" . PHP_EOL;
    }
}

logMessage('INFO', 'App started', 'Config loaded');

Operador de expansión en una llamada

Use ... al llamar a una función para expandir un array en argumentos individuales:

<?php
function add3(int $a, int $b, int $c): int {
    return $a + $b + $c;
}

$args = [1, 2, 3];
echo add3(...$args);  // 6

$extra = [4, 5];
echo add3(1, ...$extra);  // 10

Argumentos con nombre (PHP 8)

Los argumentos con nombre permiten pasar valores mediante el nombre del parámetro, sin importar el orden:

<?php
function createTag(string $tag, string $content, string $class = ''): string {
    $cls = $class ? " class=\"$class\"" : '';
    return "<$tag$cls>$content</$tag>";
}

// Skip $class, pass $content by name
echo createTag(content: 'Hello', tag: 'p');
// <p>Hello</p>

Argumentos con nombre y funciones integradas

Los argumentos con nombre también funcionan con las funciones integradas de PHP:

<?php
$arr = [3, 1, 4, 1, 5];

// Traditional positional
$result1 = array_slice($arr, 1, 3);

// Named arguments
$result2 = array_slice(array: $arr, offset: 1, length: 3);

print_r($result1); // [1, 4, 1]

func_get_args() en código heredado

Antes de la sintaxis variádica de PHP 5.6, se utilizaba func_get_args() para acceder a todos los argumentos. Puede encontrarlo en código heredado:

<?php
function legacySum(): int {
    $args = func_get_args();
    return array_sum($args);
}

echo legacySum(1, 2, 3, 4);  // 10
// Modern: use int ...$numbers instead

Parámetros variádicos con declaración de tipo

Combine las declaraciones de tipo con los parámetros variádicos para exigir una entrada estrictamente tipada:

<?php
declare(strict_types=1);

function joinStrings(string $sep, string ...$parts): string {
    return implode($sep, $parts);
}

echo joinStrings('-', 'a', 'b', 'c');  // a-b-c
// joinStrings('-', 'a', 42); // TypeError in strict mode

Combinar valores predeterminados y argumentos con nombre

Los argumentos con nombre y los valores predeterminados funcionan conjuntamente para ofrecer la máxima flexibilidad:

<?php
function sendEmail(
    string $to,
    string $subject,
    string $body = '',
    bool   $html  = false
): bool {
    // simulate send
    return true;
}

// Skip $body, pass $html by name
sendEmail('a@b.com', 'Hi', html: true);

Comprobación rápida

¿Qué hace el operador ... en la definición de una función de PHP?

Repaso: parámetros predeterminados y variádicos

Resumen:

  • Los valores predeterminados permiten usar parámetros opcionales
  • Los parámetros con valores predeterminados van después de los obligatorios
  • ?type permite usar NULL con un valor predeterminado opcional
  • ...$args recopila los argumentos variádicos en un array
  • El operador de expansión ...$arr expande un array en el lugar de la llamada
  • Los argumentos con nombre (PHP 8) se pasan por nombre, no por posición
Gratis para empezar

Aprende PHP con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
49
Lecciones
195

Preguntas frecuentes

¿La lección «Parámetros predeterminados y variádicos» es gratis?

Sí — el texto completo de «Parámetros predeterminados y variádicos» 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 «Parámetros predeterminados y variádicos»?

Utilice valores predeterminados y argumentos variádicos en las funciones de PHP. 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 2 de 4.

¿Cuánto tiempo toma la lección «Parámetros predeterminados y variádicos»?

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