Indeksowanie łańcucha znaków w PHP

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

W PHP można odczytywać pojedyncze znaki z tekstu podobnie jak elementy tablicy. Służy do tego zapis z nawiasami kwadratowymi:

$tekst[$indeks]

Indeksy zaczynają się od 0, czyli pierwszy znak ma indeks 0, drugi 1, trzeci 2 itd.

Przykład

$n = '[email protected]';
echo $n[0]; // a
echo $n[1]; // d
echo $n[5]; // @

Dla napisu [email protected] znak @ znajduje się pod indeksem 5.

Przechodzenie po znakach

Indeksowanie często łączy się z pętlą:

$n = '[email protected]';
$i = 0;

while ($n[$i] != '@') {
    echo $n[$i];
    $i++;
}

Kod wypisuje znaki od początku napisu, dopóki nie napotka @. Znak @ nie zostanie wypisany, ponieważ warunek pętli sprawdzany jest przed wykonaniem echo.

Bezpieczniejsza wersja

while ($i < strlen($n) && $n[$i] != '@') {
    echo $n[$i];
    $i++;
}

Warunek $i < strlen($n) chroni przed próbą odczytu znaku poza długością napisu, gdyby znak @ nie występował.

W zadaniach egzaminacyjnych trzeba zwracać uwagę na numerowanie od zera oraz moment, w którym pętla kończy działanie.