KWALIFIKACJA INF3 - STYCZEŃ 2018

PYTANIE NR 36.
W celu zmodyfikowania tekstu "ala ma psa" na "ALA MA PSA" należy użyć funkcji PHP
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja strtoupper() zamienia wszystkie litery w łańcuchu na wielkie, więc z napisu "ala ma psa" otrzymamy "ALA MA PSA". strtolower() działa odwrotnie, ucfirst() zmienia tylko pierwszą literę, a strstr() służy do wyszukiwania fragmentu tekstu.

Pełne wyjaśnienie:

W PHP do zamiany liter w całym łańcuchu na wielkie służy funkcja strtoupper(). Przyjmuje ona napis i zwraca jego wersję z literami zapisanymi wielkimi znakami, dlatego wywołanie strtoupper('ala ma psa') daje oczekiwany rezultat: ALA MA PSA.

Pozostałe propozycje dotyczą innych operacji na napisach i często są mylone przez podobieństwo nazw:

  • strtolower('ala ma psa') wykonuje operację przeciwną: zamienia litery na małe. Nie uzyskamy więc wersji wielkimi literami.
  • ucfirst('ala ma psa') zmienia wielkość tylko pierwszego znaku całego łańcucha (pierwszej litery napisu), a nie wszystkich liter. Efekt byłby zbliżony do: Ala ma psa, co nie spełnia wymagania.
  • strstr('ala ma psa') nie służy do zmiany wielkości liter. Jest to funkcja do wyszukiwania/wyodrębniania części łańcucha (podłańcucha) na podstawie dopasowania, więc nie jest właściwa do konwersji na wielkie litery.

W praktyce warto też pamiętać o kodowaniu znaków: dla tekstów zawierających znaki spoza ASCII (np. polskie litery) często potrzebne są funkcje wielobajtowe z rozszerzenia mbstring, aby wynik był poprawny w UTF-8. Na egzaminie kluczowe jest jednak rozpoznanie, że konwersję całego napisu na wielkie litery realizuje właśnie strtoupper().

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Funkcja strtoupper() zwraca tekst, w którym wszystkie litery zostały zamienione na wielkie. Stosuje się ją do formatowania napisów, np. nagłówków, skrótów lub ujednolicania zapisu przed prezentacją użytkownikowi.
Użyj funkcji strtoupper(), np. strtoupper('ala ma psa'). Zwrócony zostanie nowy łańcuch z wielkimi literami. Pamiętaj, że funkcja nie modyfikuje zmiennej "w miejscu" – trzeba przypisać wynik do zmiennej.
strtolower() działa w przeciwnym kierunku niż wymagany w zadaniu: zamienia litery na małe, a nie na wielkie. Jest przydatna np. do normalizacji loginu lub adresu e-mail, ale nie do uzyskania wersji pisanej wielkimi literami.
ucfirst() zmienia na wielką tylko pierwszą literę całego napisu. Nie zamienia wszystkich liter, więc dla tekstu wielowyrazowego efekt zwykle nie spełnia wymagań "zamień na wielkie litery" dla całego łańcucha.
strstr() służy do znalezienia pierwszego wystąpienia podciągu w tekście i zwrócenia fragmentu łańcucha od tego miejsca. To funkcja wyszukująca, a nie formatująca, więc nie nadaje się do zmiany wielkości liter.
Zależy od środowiska i kodowania. strtoupper() jest funkcją "jednobajtową" i bywa niewystarczająca dla znaków narodowych w UTF-8. W takich przypadkach w praktyce rozważa się funkcje wielobajtowe (mb_*), jeśli są dostępne na serwerze.
Najczęściej myli się: strtoupper() ze strtolower() (przeciwne działanie), oraz ucfirst() (zmienia tylko pierwszy znak). Częsty jest też wybór strstr() przez skojarzenie z "pracą na tekście", mimo że to wyszukiwanie.
W treści zwykle pojawia się przykład typu: "ala ma psa" → "ALA MA PSA". To oznacza zmianę wszystkich liter w łańcuchu. Szukaj funkcji, która opisowo odpowiada temu działaniu (upper = wielkie), a nie funkcji zmieniającej pojedynczy znak.
Przykład: $t = 'ala ma psa'; $wynik = strtoupper($t);. Funkcja zwraca nowy napis, więc bez przypisania wynik może zostać tylko wypisany. To ważne w zadaniach praktycznych, gdzie dalej wykorzystujesz przetworzony tekst.
Stosuje się ją m.in. do wyróżniania etykiet (np. statusów), generowania skrótów, ujednolicania prezentacji danych oraz w prostych mechanizmach normalizacji. Trzeba jednak uważać na językowe reguły i kodowanie znaków (UTF-8).
info

Około 71% zdających odpowiada poprawnie na to pytanie. średnio łatwe

W praktyce zawodowej kluczowe jest to, że funkcja strtoupper() zamienia wszystkie litery w łańcuchu na wielkie, więc z napisu "ala ma psa" otrzymamy "ALA MA PSA".

Źródła:

  • PHP Manual: strtoupper — Make a string uppercase, https://www.php.net/manual/en/function.strtoupper.php (accessed 2026-03-01)
  • PHP Manual: strtolower — Make a string lowercase, https://www.php.net/manual/en/function.strtolower.php (accessed 2026-03-01)
  • PHP Manual: ucfirst — Make a string's first character uppercase, https://www.php.net/manual/en/function.ucfirst.php (accessed 2026-03-01)

Materiały:

  • Dokumentacja PHP: dział String Functions (funkcje dla napisów)
  • Przykłady zadań o przetwarzaniu łańcuchów w PHP (ćwiczenia praktyczne)
  • Materiały o kodowaniach znaków i pracy z UTF-8 w PHP (np. funkcje mb_*)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego