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.