Valori predefiniti dei parametri
Fa parte della sezione Fondamenti del percorso PHP di Coddy. Lezione 64 di 71.
A volte vuoi che un parametro di una funzione abbia un valore predefinito quando non viene fornito alcun argomento. I valori predefiniti dei parametri ti permettono di definire quale valore debba avere un parametro se chi chiama la funzione non lo specifica.
Per impostare un valore predefinito, assegnalo direttamente nella dichiarazione della funzione usando l'operatore =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>Questo produce:
Hello, Alice!
Hello, Guest!Quando chiami greet("Alice"), l'argomento sostituisce il valore predefinito. Quando chiami greet() senza argomenti, PHP usa "Guest" al suo posto.
Puoi combinare parametri obbligatori e facoltativi, ma i parametri con valori predefiniti devono venire dopo quelli obbligatori:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>Questo produce:
Alice is a member
Bob is a adminIl primo parametro $name è obbligatorio, mentre $role assume il valore predefinito "member" se non viene specificato. Questo schema rende le tue funzioni più flessibili senza richiedere a chi le chiama di fornire sempre tutti gli argomenti.
Sfida
FacileLeggi due righe di input:
- Un nome di prodotto (ad es.,
Laptop) - Una quantità (ad es.,
5). Questo input può essere vuoto
Crea una funzione chiamata formatOrder che accetti due parametri: $product (obbligatorio) e $quantity (facoltativo, con valore predefinito 1). La funzione deve restituire una stringa nel formato seguente:
Order: [quantity]x [product]Se l'input della quantità è vuoto, chiama la funzione passando solo il nome del prodotto (usando la quantità predefinita). Altrimenti, chiamala passando entrambi i valori.
Stampa il risultato restituito.
Esempio 1:
Se gli input sono Laptop e 5, l'output dovrebbe essere:
Order: 5x LaptopEsempio 2:
Se gli input sono Keyboard e una riga vuota, l'output dovrebbe essere:
Order: 1x KeyboardEsempio 3:
Se gli input sono Monitor e 3, l'output dovrebbe essere:
Order: 3x MonitorProvalo tu
<?php
// Leggi l'input
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: Crea la funzione formatOrder con $product (obbligatorio) e $quantity (facoltativo, con valore predefinito 1)
// La funzione deve restituire una stringa nel formato: "Order: [quantity]x [product]"
// TODO: Chiama la funzione nel modo appropriato a seconda che quantity sia vuoto o meno
// Se quantity è vuoto, chiama la funzione passando solo product (usa il valore predefinito)
// Altrimenti, chiama la funzione passando sia product sia quantity
// Stampa il risultato
echo $result;
?>Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori di confronto e logici
Operatori di confrontoUguaglianza e identitàOperatori logici Parte 1Operatori logici Parte 2Riepilogo - Logica semplice2Variabili e tipi di dati
NumeriStringhe e virgoletteValori booleaniConvenzioni di denominazioneRiepilogo - Inizializzazione delle variabiliVariabili vuoteConcatenazione di stringheAcquisire input dall'utenteConvertire in tipi diversi5Logica condizionale
Istruzione ifIf - elseL’operatore ternarioOperatore null coalescingIstruzione switchRiepilogo - Prendere decisioni3Operatori di base
Operatori aritmeticiOperatore moduloOperatore di elevamento a potenzaAssegnazione compostaIncremento/decrementoPrecedenza degli operatoriRiepilogo - calcoli sempliciOperatori per stringheEsercitati da solo: Compilatore PHP online