Część 09 kursu PHP pod kątem INF.03: Własne funkcje. Teoria w skrócie i 16 ćwiczeń z automatycznym sprawdzaniem.
Funkcja grupuje kod, który ma się powtarzać. Definicję zaczynamy słowem function , podajemy nazwę i nawiasy, a kod zamykamy w klamrach. Nazwa nie może zaczynać się cyfrą i nie rozróżnia wielkości liter.
function powitanie() {
echo '<p>Witaj w kursie PHP!</p>';
}
function linia() {
echo '<hr>';
}
powitanie();
linia();
powitanie();
function powitanie() {
echo '<p>Witaj w kursie PHP!</p>';
}
function linia() {
echo '<hr>';
}
powitanie();
linia();
powitanie();
Czym zaczynamy definicję funkcji?
Poprawna: a) Definicję otwiera słowo function z nazwą.
Parametry to dane przekazywane do funkcji. W definicji podajemy nazwy zmiennych, a przy wywołaniu wartości: cena(100, 0.23) . Liczba argumentów musi się zgadzać z liczbą parametrów.
function brutto($kwota, $vat = 0.23) {
return $kwota * (1 + $vat);
}
echo brutto(100);
echo '<p>Bez VAT: ' . brutto(100, 0) . '</p>';
echo '<p>Inna stawka: ' . brutto(200, 0.08) . '</p>';
function brutto($kwota, $vat = 0.23) {
return $kwota * (1 + $vat);
}
echo brutto(100);
echo '<p>Bez VAT: ' . brutto(100, 0) . '</p>';
echo '<p>Inna stawka: ' . brutto(200, 0.08) . '</p>';
Gdzie umieszczamy parametr domyślny?
Poprawna: d) Parametry z wartością domyślną idą na koniec.
Zmienna utworzona w funkcji jest lokalna — poza nią nie istnieje. Zmienna zewnętrzna nie jest widoczna w funkcji, chyba że przekażemy ją parametrem.
function statystyki(array $liczby): array {
return [
'suma' => array_sum($liczby),
'srednia' => array_sum($liczby) / max(1, count($liczby)),
'ile' => count($liczby),
];
}
$wynik = statystyki([4, 8, 6]);
echo $wynik['suma'] . ' / ' . $wynik['srednia'];
function statystyki(array $liczby): array {
return [
'suma' => array_sum($liczby),
'srednia' => array_sum($liczby) / max(1, count($liczby)),
'ile' => count($liczby),
];
}
$wynik = statystyki([4, 8, 6]);
echo $wynik['suma'] . ' / ' . $wynik['srednia'];
Jaki zasięg ma zmienna w funkcji?
Poprawna: c) Zmienna utworzona w funkcji żyje tylko w niej.