KWALIFIKACJA INF3 - CZERWIEC 2023

PYTANIE NR 39.
W języku PHP zmiennej a przypisano tekst, w którym kilkukrotnie występuje słowo Kowalski. Aby jednym poleceniem zmienić w zmiennej a wszystkie wystąpienia słowa Kowalski na słowo Nowak, należy zastosować polecenie
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
str_replace() służy do podmiany wszystkich wystąpień szukanego tekstu na inny w podanym łańcuchu. Poprawne wywołanie ma trzy argumenty: szukane ('Kowalski'), zamiennik ('Nowak') oraz modyfikowany tekst ($a), a wynik należy przypisać do $a.

Pełne wyjaśnienie:

W PHP do zamiany fragmentów tekstu w łańcuchu znaków używa się funkcji str_replace(). Jej typowy schemat to: str_replace(szukane, zamiennik, tekst). Funkcja przeszukuje podany łańcuch i wykonuje podmianę dla wszystkich wystąpień (nie tylko pierwszego), dlatego nadaje się do sytuacji, w której nazwisko "Kowalski" pojawia się w tekście wielokrotnie.

Dlaczego poprawna jest odpowiedź:
$a = str_replace('Kowalski', 'Nowak', $a);
Spełnia ona trzy warunki: używa właściwej funkcji, zachowuje prawidłową kolejność argumentów (najpierw co zamienić, potem na co zamienić, a na końcu gdzie) oraz przypisuje wynik z powrotem do zmiennej $a.

Dlaczego pozostałe odpowiedzi są błędne:

  • $a = str_replace('Nowak', 'Kowalski'); – brakuje argumentu z tekstem wejściowym. Bez trzeciego parametru funkcja nie ma na czym wykonać zamiany.
  • $a = str_rep('Kowalski', 'Nowak', $a); – nazwa funkcji jest niepoprawna (literówka). W PHP taka funkcja standardowo nie istnieje.
  • $a = str_replace('Nowak', 'Kowalski', $a); – argumenty "szukane" i "zamiennik" są odwrócone. Taki zapis zamieniałby "Nowak" na "Kowalski", czyli odwrotnie niż wymaga treść zadania.

Wskazówka egzaminacyjna: zapamiętaj kolejność: szukaj → zamień na → w czym. Jeśli w odpowiedzi brakuje trzeciego elementu (tekstu), to z definicji nie może wykonać zamiany.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
str_replace() zamienia w tekście wszystkie wystąpienia wskazanego fragmentu na inny fragment. Podajesz kolejno: co wyszukać, na co zamienić oraz w jakim łańcuchu wykonać podmianę. Wynik zwracany przez funkcję zwykle przypisuje się do zmiennej.
Kolejność jest stała: szukane, zamiennik, tekst. Czyli: str_replace('stare', 'nowe', $tekst). Na egzaminie to częsty "haczyk": odwrócenie dwóch pierwszych argumentów daje działanie odwrotne do oczekiwanego.
Nie. str_replace() domyślnie wykonuje podmianę dla wszystkich wystąpień w podanym łańcuchu. To odróżnia ją od zadań, gdzie trzeba wymienić tylko pierwszy pasujący fragment (wtedy często potrzebna jest inna logika, np. z pozycją i wycinkami).
W typowym użyciu str_replace() zwraca nowy łańcuch znaków. Jeśli nie przypiszesz wyniku (np. $a = ...), to zmienna pozostanie z poprzednią wartością i "zmiana" nie będzie widoczna w dalszej części skryptu.
Funkcja jest przeznaczona do pracy na łańcuchach znaków. Jeśli przekażesz liczbę, PHP zwykle dokona konwersji do tekstu i spróbuje wykonać operację. Na egzaminie INF.3 zakładaj jednak poprawne typy: tekst w zmiennej (string) i teksty szukane/zamieniane.
W PHP można użyć dodatkowego parametru, który zwróci liczbę wykonanych podmian (licznik). W zadaniach egzaminacyjnych częściej oczekuje się jednak samej zamiany w tekście. Jeśli w odpowiedziach widzisz argument "licznika", upewnij się, że nadal zachowana jest poprawna kolejność podstawowych parametrów.
Najczęstsze pułapki to: odwrócenie argumentów "szukane" i "zamiennik", brak trzeciego argumentu (tekstu, w którym ma zajść podmiana) oraz literówki w nazwie funkcji. W testach INF.3 takie drobiazgi zwykle decydują o poprawności.
str_replace() zamienia zwykły tekst, a preg_replace() działa z wyrażeniami regularnymi. Jeśli w zadaniu nie ma wzorców typu regex, najczęściej właściwa będzie prostsza funkcja str_replace(). Użycie preg_replace() bez potrzeby zwiększa ryzyko błędów w składni wzorca.
Tak, standardowo str_replace() jest czułe na wielkość liter, więc "Kowalski" i "kowalski" to różne ciągi. Jeśli w treści zadania nie ma informacji o różnych wariantach zapisu, przyjmij dokładne dopasowanie i wpisz szukany tekst identycznie jak w poleceniu.
Pomaga reguła: stare → nowe → gdzie. Najpierw podajesz "stare" (co ma zniknąć), potem "nowe" (co ma się pojawić), a na końcu "gdzie" (zmienna/tekst). Dzięki temu łatwiej wychwycisz odpowiedzi z odwróconymi parametrami.
info

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

Specjaliści zwracają uwagę: "str_replace() służy do podmiany wszystkich wystąpień szukanego tekstu na inny w podanym łańcuchu."

Źródła:

  • PHP Manual: str_replace — Replace all occurrences of the search string with the replacement string, https://www.php.net/manual/en/function.str-replace.php - accessed 2026-02-18
  • PHP Manual: Strings (String Functions), https://www.php.net/manual/en/ref.strings.php - accessed 2026-02-18
  • PHP Manual: Function arguments (Passing arguments), https://www.php.net/manual/en/functions.arguments.php - accessed 2026-02-18

Materiały:

  • Oficjalna dokumentacja PHP: funkcje do operacji na łańcuchach
  • Ćwiczenia praktyczne: manipulacja stringami (replace, substr, strpos)
  • Kurs podstaw PHP (zmienne, funkcje, łańcuchy znaków)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego