Menu
Coddy logo textTech

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

Para establecer un valor predeterminado, asígnalo directamente en la declaración de la función mediante 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 default. Cuando llamas a greet() sin argumento, PHP usa "Guest" en su lugar.

Puedes mezclar 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 produce:

Alice is a member
Bob is a admin

El primer parámetro $name es obligatorio, mientras que $role tiene el valor predeterminado "member" si no se proporciona. Este patrón hace que tus funciones sean más flexibles sin requerir 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 (por ejemplo, Laptop)
  2. Una cantidad (por ejemplo, 5). Esta entrada puede estar vacía

Crea una función llamada formatOrder que acepte dos parámetros: $product (obligatorio) y $quantity (opcional, con un 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 únicamente 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
// Leer entrada
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));

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


// TODO: Llama a la función apropiadamente según si quantity está vacío o no
// Si quantity está vacío, llama solo con product (usa el valor por defecto)
// De lo contrario, llama 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