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.