Domyślne wartości parametrów
Część sekcji Podstawy ścieżki PHP w Coddy. Lekcja 64 z 71.
Czasami chcesz, aby parametr funkcji miał wartość zastępczą, gdy nie zostanie przekazany żaden argument. Wartości domyślne parametrów pozwalają określić, jaką wartość powinien mieć parametr, jeśli wywołujący go nie określi.
Aby ustawić wartość domyślną, przypisz ją bezpośrednio w deklaracji funkcji za pomocą operatora =:
<?php
function greet($name = "Guest") {
echo "Hello, $name!\n";
}
greet("Alice");
greet();
?>To wyświetla:
Hello, Alice!
Hello, Guest!Gdy wywołasz greet("Alice"), argument zastępuje wartość domyślną. Gdy wywołasz greet() bez argumentu, PHP użyje zamiast niej wartości "Guest".
Możesz łączyć wymagane i opcjonalne parametry, ale parametry z wartościami domyślnymi muszą występować po wymaganych:
<?php
function createUser($name, $role = "member") {
return "$name is a $role";
}
echo createUser("Alice") . "\n";
echo createUser("Bob", "admin");
?>To wyświetla:
Alice is a member
Bob is a adminPierwszy parametr $name jest wymagany, natomiast $role domyślnie przyjmuje wartość "member", jeśli nie zostanie podany. Ten wzorzec sprawia, że twoje funkcje są bardziej elastyczne, bez konieczności podawania przez wywołujących zawsze każdego argumentu.
Wyzwanie
ŁatwyWczytaj dwa wiersze danych wejściowych:
- Nazwę produktu (np.
Laptop) - Ilość (np.
5). To pole może być puste
Utwórz funkcję o nazwie formatOrder, która przyjmuje dwa parametry: $product (wymagany) i $quantity (opcjonalny, domyślnie 1). Funkcja powinna return ciąg znaków w następującym formacie:
Order: [quantity]x [product]Jeśli pole ilości jest puste, wywołaj funkcję tylko z nazwą produktu (używając domyślnej ilości). W przeciwnym razie wywołaj ją z obiema wartościami.
Wyświetl zwrócony wynik.
Przykład 1:
Jeśli dane wejściowe to Laptop i 5, wynikiem powinno być:
Order: 5x LaptopPrzykład 2:
Jeśli dane wejściowe to Keyboard i pusty wiersz, wynikiem powinno być:
Order: 1x KeyboardPrzykład 3:
Jeśli dane wejściowe to Monitor i 3, wynikiem powinno być:
Order: 3x MonitorSpróbuj swoich sił
<?php
// Odczytaj dane wejściowe
$product = trim(fgets(STDIN));
$quantity = trim(fgets(STDIN));
// TODO: Utwórz funkcję formatOrder z parametrem $product (wymaganym) i $quantity (opcjonalnym, domyślnie 1)
// Funkcja powinna zwracać ciąg znaków w formacie: "Order: [quantity]x [product]"
// TODO: Wywołaj funkcję odpowiednio w zależności od tego, czy quantity jest puste
// Jeśli quantity jest puste, wywołaj funkcję tylko z product (użyj wartości domyślnej)
// W przeciwnym razie wywołaj funkcję z product i quantity
// Wyświetl wynik
echo $result;
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory porównania i logiczne
Operatory porównaniaRówność i tożsamośćOperatory logiczne — część 1Operatory logiczne — część 2Powtórka — prosta logika2Zmienne i typy danych
LiczbyCiągi znaków i cudzysłowyWartości logiczneKonwencje nazewnictwaPodsumowanie — inicjalizacja zmiennychPuste zmienneŁączenie ciągów znakówPobieranie danych od użytkownikaKonwersja na inne typy5Instrukcje warunkowe
Instrukcja ifIf - elseOperator trójargumentowyOperator null coalescingInstrukcja switchPodsumowanie — podejmowanie decyzji3Podstawowe operatory
Operatory arytmetyczneOperator moduloOperator potęgowaniaPrzypisanie złożoneInkrementacja/dekrementacjaPriorytet operatorówPowtórka — proste obliczeniaOperatory łańcuchów znakówPoćwicz samodzielnie: Kompilator PHP online