Menu
Coddy logo textTech

Default Parameter Values

Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 64 de 71.

A veces quieres que un parámetro de función tenga un valor por defecto cuando no se proporciona ningún argumento. Los valores por defecto de parámetros te permiten definir qué debe ser un parámetro si el llamador no lo especifica.

Para establecer un valor predeterminado, asígnelo directamente en la declaración de la función usando el = operador:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");
greet();
?>

Esto produce:

Hello, Alice!
Hello, Guest!

Cuando llamas a greet("Alice"), el argumento sobrescribe el predeterminado. Cuando llamas a greet() sin argumento, PHP usa "Guest" en su lugar.

Puedes mezclar parámetros requeridos y opcionales, pero los parámetros con valores predeterminados deben venir después de los requeridos:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>

Esto produce:

Alice is a member
Bob is a admin

El primer parámetro $name es requerido, mientras que $role tiene un valor predeterminado de "member" si no se proporciona. Este patrón hace que tus funciones sean más flexibles sin requerir que los llamadores proporcionen siempre todos los argumentos.

challenge icon

Desafío

Fácil

Lee dos líneas de entrada:

  1. Un nombre de producto (p. ej., Laptop)
  2. Una cantidad (p. ej., 5) — esta entrada puede estar vacía

Crea una función llamada formatOrder que acepte dos parámetros: $product (requerido) y $quantity (opcional, por defecto 1). La función debe devolver una cadena en el siguiente formato:

Order: [quantity]x [product]

Si la entrada de cantidad está vacía, llama a la función solo con el nombre del producto (usando la cantidad por defecto). De lo contrario, llámala con ambos valores.

Imprime el resultado devuelto.

Ejemplo 1:

Si las entradas son Laptop y 5, la salida debe ser:

Order: 5x Laptop

Ejemplo 2:

Si las entradas son Keyboard y una línea vacía, la salida debe ser:

Order: 1x Keyboard

Ejemplo 3:

Si las entradas son Monitor y 3, la salida debe ser:

Order: 3x Monitor

Hoja de referencia

Los valores predeterminados de los parámetros permiten definir valores de respaldo para los parámetros de la función cuando no se proporciona ningún argumento.

Para establecer un valor predeterminado, asígnalo en la declaración de la función usando =:

<?php
function greet($name = "Guest") {
    echo "Hello, $name!\n";
}

greet("Alice");  // Hello, Alice!
greet();         // Hello, Guest!
?>

Al mezclar parámetros requeridos y opcionales, los parámetros con valores predeterminados deben ir después de los requeridos:

<?php
function createUser($name, $role = "member") {
    return "$name is a $role";
}

echo createUser("Alice");           // Alice is a member
echo createUser("Bob", "admin");    // Bob is a admin
?>

Pruébalo tú mismo

<?php
// Leer entrada
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));

// TODO: Crear la función formatOrder con $product (requerido) y $quantity (opcional, valor predeterminado 1)
// La función debe devolver una cadena en el formato: "Order: [quantity]x [product]"


// TODO: Llamar a la función de manera apropiada según si quantity está vacío o no
// Si quantity está vacío, llamar solo con product (usar el predeterminado)
// De lo contrario, llamar con product y quantity


// Imprimir el resultado
echo $result;
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos