Menu
Coddy logo textTech

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 admin

Il 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.

challenge icon

Sfida

Facile

Leggi due righe di input:

  1. Un nome di prodotto (ad es., Laptop)
  2. 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 Laptop

Esempio 2:

Se gli input sono Keyboard e una riga vuota, l'output dovrebbe essere:

Order: 1x Keyboard

Esempio 3:

Se gli input sono Monitor e 3, l'output dovrebbe essere:

Order: 3x Monitor

Provalo 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;
?>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore PHP online