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: Funkcja explode() w PHP Konkatenacja w PHP Tablice w PHP

$tab = explode(";", "pon;wt;śr;czw;pt"); echo count($tab); Wskaż wynik wykonania przedstawionego kodu PHP.

$tab = explode(";", "pon;wt;śr;czw;pt");
echo count($tab);
Wskaż wynik wykonania przedstawionego kodu PHP.
A. 6
B. 5
C. 1
D. 4
W tym kodzie funkcja explode w PHP dzieli tekst pon;wt;śr;czw;pt według separatora średnika. Średnik występuje między nazwami dni, więc powstaje tablica zawierająca pięć elementów: pon, wt, śr, czw oraz pt. Następnie funkcja count($tab) zlicza liczbę elementów w tej tablicy, a nie liczbę separatorów ani długość tekstu. Dlatego wynikiem działania echo count($tab); jest 5. To jest bardzo praktyczny mechanizm, bo w aplikacjach webowych często odbieramy dane jako jeden ciąg znaków, np. listę tagów, wartości z pliku CSV albo prostą konfigurację zapisaną w tekście, i potem rozbijamy ją na tablicę do dalszego przetwarzania. Moim zdaniem warto zapamiętać zasadę: jeśli mamy n separatorów między poprawnymi fragmentami tekstu, to zwykle elementów po podziale będzie n + 1. W dobrych praktykach PHP dobrze jest też sprawdzać, czy dane wejściowe mają oczekiwany format, szczególnie gdy pochodzą od użytkownika, bo dodatkowy średnik na końcu mógłby utworzyć pusty element tablicy.
W tym przykładzie najczęstszy błąd polega na tym, że ktoś liczy średniki zamiast elementów tablicy. W napisie pon;wt;śr;czw;pt są cztery średniki, ale funkcja count nie sprawdza liczby separatorów w oryginalnym tekście. Ona działa już na wyniku funkcji explode, czyli na tablicy. Separator służy tylko do wskazania miejsc podziału. Cztery miejsca podziału dają pięć fragmentów tekstu, bo mamy dane także przed pierwszym separatorem i po ostatnim separatorze. To trochę jak przecięcie sznurka w czterech miejscach: nie dostaniemy czterech kawałków, tylko pięć. Wynik 1 też wynika z mylenia typu danych. Owszem, przed wykonaniem explode mamy jeden napis jako całość, ale po wykonaniu funkcji zmienna $tab nie przechowuje już pojedynczego stringa, tylko tablicę elementów. Z kolei wynik 6 mógłby się pojawić przy założeniu, że PHP dolicza jakiś dodatkowy pusty element albo znak końca tekstu, ale tutaj nic takiego nie występuje. Funkcja explode nie tworzy dodatkowego elementu bez powodu. W praktyce warto uważać na przypadki brzegowe, np. tekst kończący się średnikiem może dać pusty element na końcu, ale w tym konkretnym kodzie separator jest tylko między nazwami dni. Dlatego poprawne rozumowanie to: najpierw dzielenie tekstu na tablicę, potem zliczenie elementów tablicy funkcją count.

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.