Menu
CoddyTech

Valores de parámetros predeterminados

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 una función tenga un valor alternativo cuando no se proporciona ningún argumento. Los valores predeterminados de los parámetros te permiten definir cuál debe ser el valor de un parámetro si quien llama a la función no lo especifica.

Para establecer un valor predeterminado, asígnalo 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 muestra:

Hello, Alice!
Hello, Guest!

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

Puedes combinar parámetros obligatorios y opcionales, pero los parámetros con valores predeterminados deben ir después de los obligatorios:

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

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

Esto muestra:

Alice is a member
Bob is a admin

El primer parámetro $name es obligatorio, mientras que $role tiene como valor predeterminado "member" si no se proporciona. Este patrón hace que tus funciones sean más flexibles sin exigir que quienes las llaman 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 (obligatorio) y $quantity (opcional, con valor predeterminado de 1). La función debe devolver una cadena con 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 predeterminada). 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

Pruébalo tú mismo

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

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


// TODO: Llama a la función según si quantity está vacío o no
// Si quantity está vacío, llama a la función solo con product (usa el valor predeterminado)
// De lo contrario, llama a la función con product y quantity


// Imprime 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

Practica por tu cuenta: Compilador de PHP online