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: Operator konkatenacji w PHP PHP

Która informacja dotycząca przedstawionego kodu jest prawdziwa?

<?php
   $a="Ala";
   $a.="Ola";
   echo $a;    ?>
A. Znak kropki "." jest operatorem konkatenacji.
B. W zmiennej $a wartość "Ala" zostanie zamieniona na wartość "Ola".
C. Zostanie wypisany komunikat "OlaAla".
D. Znak "=" jest operatorem porównania dwóch zmiennych.

Pytanie z egzaminu CKE, czerwiec 2020 (arkusz E.14-SG-20.06).

W tym kodzie najważniejszy jest operator kropki, czyli operator konkatenacji w PHP. Konkatenacja oznacza łączenie tekstów, fachowo: łączenie łańcuchów znaków. Najpierw do zmiennej a trafia napis 'Ala'. Potem instrukcja a .= 'Ola' działa jak skrócony zapis: a = a . 'Ola'. Czyli do aktualnej zawartości zmiennej zostaje dopisany kolejny tekst, bez kasowania poprzedniej wartości. Wynikiem działania echo będzie więc 'AlaOla'. Moim zdaniem to jeden z tych operatorów, które warto dobrze zapamiętać, bo w PHP używa się go bardzo często, np. przy budowaniu komunikatów, składaniu fragmentów HTML, tworzeniu zapytań tekstowych albo dopisywaniu danych do zmiennej w pętli. Dobra praktyka jest taka, żeby rozumieć różnicę między zwykłym przypisaniem = a dopisaniem .=, bo pomyłka może łatwo zmienić wynik programu. W nowoczesnym kodzie często stosuje się też interpolację zmiennych w napisach, ale operator . dalej jest standardowym i poprawnym narzędziem PHP.
Warto tu spokojnie prześledzić wykonanie programu linia po linii, bo błędy w tym pytaniu wynikają głównie z pomylenia operatorów. Zmienna a na początku dostaje wartość 'Ala'. Nie ma tu jeszcze żadnego łączenia ani porównywania, tylko zwykłe przypisanie wartości. Potem pojawia się zapis .=, który w PHP oznacza dopisanie tekstu do aktualnej zawartości zmiennej. To nie jest zamiana wartości na nową, tylko skrót od operacji a = a . 'Ola'. Dlatego końcowy napis to 'AlaOla', a nie 'OlaAla'. Kolejność ma znaczenie: stary tekst jest po lewej stronie, nowy jest dopisywany po prawej. Częsty błąd polega na tym, że ktoś widzi drugi napis i zakłada, że zostanie wypisany jako pierwszy, ale konkatenacja nie odwraca kolejności znaków. Znak = również nie służy do porównywania dwóch zmiennych. W PHP jest operatorem przypisania, czyli zapisuje wartość do zmiennej. Do porównania używa się ==, a w dobrym, bezpieczniejszym stylu często ===, bo sprawdza nie tylko wartość, ale też typ danych. Gdyby kod miał naprawdę zastąpić 'Ala' napisem 'Ola', musiałby zawierać zwykłe przypisanie a = 'Ola'. Tutaj zastosowano dopisywanie, więc poprzednia zawartość zostaje zachowana. Z mojego doświadczenia takie drobiazgi są bardzo praktyczne, bo przy formularzach, komunikatach i generowaniu tekstu w PHP operator konkatenacji pojawia się non stop.

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.