function dzialania(int $x, float $y) { $z = $x + $y; return $z; } Przedstawiona funkcja zapisana w języku PHP
function dzialania(int $x, float $y) { $z = $x + $y; return $z; }Przedstawiona funkcja zapisana w języku PHP
A. zwraca wartość.
B. nie zwraca wartości.
C. jest zdefiniowana z dwoma parametrami rzeczywistymi.
D. pobiera dwa parametry z domyślną wartością.
Pytanie z egzaminu CKE, czerwiec 2022 (arkusz EE.09-SG-22.06).
Poprawna odpowiedź to zwraca wartość. W ciele funkcji znajduje się instrukcja return, która kończy działanie funkcji i przekazuje na zewnątrz wynik obliczenia. Najpierw do zmiennej z przypisywana jest suma parametrów x oraz y, a następnie ta suma jest zwracana jako rezultat wywołania funkcji. Reguła do zapamiętania: w PHP instrukcja return wyrażenie; oznacza, że funkcja oddaje wartość wskazanego wyrażenia, nawet jeśli w nagłówku nie zapisano jawnego typu zwracanego wyniku. W praktyce taki zapis stosuje się wtedy, gdy wynik funkcji ma być dalej użyty, na przykład zapisany do zmiennej, wyświetlony albo przekazany jako argument do innej funkcji. Typową pułapką jest mylenie samego obliczenia z jego zwróceniem - bez return wynik nie opuściłby funkcji.
W tej funkcji decydujące znaczenie ma instrukcja return, dlatego poprawna odpowiedź to zwraca wartość. Odpowiedź pobiera dwa parametry z domyślną wartością nie pasuje do kodu, ponieważ przy parametrach nie zapisano wartości po znaku równości, na przykład int x = 0. Parametry mają określone typy, ale nie mają wartości domyślnych. Odpowiedź nie zwraca wartości byłaby trafna dla funkcji bez instrukcji return albo dla funkcji wykonującej tylko operacje pomocnicze, na przykład wyświetlanie tekstu. Tutaj return z powoduje przekazanie wyniku poza funkcję. Odpowiedź jest zdefiniowana z dwoma parametrami rzeczywistymi również jest nieprecyzyjna. W definicji funkcji występują parametry formalne, czyli nazwy używane wewnątrz funkcji. Parametry rzeczywiste, nazywane też argumentami, pojawiają się dopiero przy wywołaniu funkcji, na przykład podczas przekazania konkretnych liczb. Typowy błąd polega na skupieniu się na typach int i float, a pominięciu instrukcji return.