Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki PHP

Słowa kluczowe: Funkcje w PHP Instrukcja return w PHP Operator modulo % w PHP PHP Typ integer

Funkcja zapisana w języku PHP ma przedstawioną postać. Jej zadaniem jest

function fun1($liczba)
{
   if($liczba % 3 == 0)
       return 1;

   return 0;
}
A. wypisanie liczby podzielnej przez 3
B. zwrócenie wartości 1, gdy liczba jest podzielna przez 3
C. zwrócenie wartości 0, gdy liczba jest podzielna przez 3
D. wypisanie liczby niepodzielnej przez 3
W tej funkcji kluczowe są dwa elementy: operator modulo % oraz instrukcja return. Wyrażenie $liczba % 3 oblicza resztę z dzielenia zmiennej $liczba przez 3. Jeżeli reszta wynosi 0, to znaczy, że liczba dzieli się przez 3 bez reszty, więc warunek $liczba % 3 == 0 jest spełniony. Wtedy funkcja od razu zwraca wartość 1. Jeśli warunek nie zostanie spełniony, program przechodzi dalej i zwraca 0. Ważne: funkcja niczego nie wypisuje na ekran, bo nie ma tu echo, print ani podobnej instrukcji. Ona tylko oddaje wynik do miejsca, z którego została wywołana. W praktyce taką funkcję można użyć np. przy sprawdzaniu poprawności danych, filtrowaniu liczb w tablicy albo przy prostym warunku w formularzu. Moim zdaniem warto też zauważyć, że w dobrym stylu PHP funkcja tego typu mogłaby zwracać true albo false, bo sprawdza warunek logiczny, ale 1 i 0 też są często spotykane, szczególnie w prostych zadaniach szkolnych i starszym kodzie.
Najczęstsze nieporozumienie w tym zadaniu wynika z pomylenia zwracania wartości z wypisywaniem tekstu lub liczby na ekran. W PHP instrukcja return kończy działanie funkcji i przekazuje wartość do kodu, który tę funkcję wywołał. Nie powoduje ona automatycznego wyświetlenia wyniku w przeglądarce. Do wypisywania służyłyby raczej echo, print albo np. wygenerowanie fragmentu HTML. Dlatego interpretowanie tej funkcji jako mechanizmu wypisującego liczbę podzielną lub niepodzielną przez 3 jest nietrafione, choć da się zrozumieć skąd ten błąd się bierze, bo w wielu pierwszych ćwiczeniach programistycznych wynik od razu pokazuje się użytkownikowi. Tutaj jednak wynik jest tylko zwracany. Drugi ważny temat to sens warunku $liczba % 3 == 0. Operator % zwraca resztę z dzielenia. Gdy reszta z dzielenia przez 3 wynosi 0, liczba jest podzielna przez 3. Wtedy funkcja zwraca 1, a nie 0. Wartość 0 pojawia się dopiero wtedy, gdy warunek nie zostanie spełniony, czyli gdy liczba nie jest podzielna przez 3. Z mojego doświadczenia dobrze jest czytać takie funkcje linijka po linijce: najpierw sprawdzić warunek, potem zobaczyć, co dokładnie jest zwracane w gałęzi prawdziwej, a co poza nią. To bardzo praktyczny nawyk przy debugowaniu kodu PHP.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.