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 adminEl 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.
Desafío
FácilLee dos líneas de entrada:
- Un nombre de producto (p. ej.,
Laptop) - 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 LaptopEjemplo 2:
Si las entradas son Keyboard y una línea vacía, la salida debe ser:
Order: 1x KeyboardEjemplo 3:
Si las entradas son Monitor y 3, la salida debe ser:
Order: 3x MonitorPrué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;
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción a PHP
El lenguaje PHP¡Hola, mundo!Etiquetas e instruccionesComentariosEl salto de línea4Operadores de comparación y lógicos
Operadores de comparaciónIgualdad e identidadOperadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simple7Arrays Parte 2 - Asociativos
Introducción a los arrays asociativosAcceder a valores mediante una claveModificar valores mediante una claveAñadir nuevos pares clave-valorComprobar si existe una claveRepaso - Almacén de datos clave-valor10Funciones
Declarar y llamar funcionesParámetros de funcionesDevolver valoresValores de parámetros predeterminadosDeclaraciones de tipo para parámetrosDeclaraciones del tipo de retornoÁmbito de las variablesRepaso: crear código reutilizable2Variables y tipos de datos
NúmerosCadenas y comillasBooleanosConvenciones de nomenclaturaRepaso: inicialización de variablesVariables vacíasConcatenación de cadenasObtener datos del usuarioConvertir a otros tipos5Lógica condicional
Sentencia ifIf - elseEl operador ternarioOperador de coalescencia nulaSentencia switchRepaso: tomar decisiones3Operadores básicos
Operadores aritméticosOperador móduloOperador de exponenciaciónAsignación compuestaIncremento/decrementoPrecedencia de operadoresRepaso: cálculos sencillosOperadores de cadenasPractica por tu cuenta: Compilador de PHP online