Kursy

Zmienne łańcuchowe

Zmienne łańcuchowe

Do przechowywania napisów służą zmienne łańcuchowe. Można je zadeklarować w następujący sposób:
$lan1 = "to jest łańcuch pierwszy";
$lan2 = 'a to jest łańcuch drugi';
Obie te deklaracje są poprawne, ponieważ łańcuchy w PHP możemy zapisywać zarówno w cudzysłowach jak i w apostrofach. Do poszczególnych znaków w łańcuchu mamy dostęp poprzez ich indeks, tzn. przez numer literki liczony od 0. Np. w pierwszym łańcuchu literka "o" ma indeks 1, ponieważ jest druga w łańcuchu. Dostęp taki jest wywołany tym, że typ string jest zadeklarowany w interpreterze jako tablica znaków, a tablice w PHP zaczynają się od indeksu 0.

W PHP możliwe są tylko dwie operacje na stringach: przypisanie i dodawanie. Przypisanie poznałeś już w przykładzie u góry, a oto przykład dodawania:
$lan1 = $lan.$lan2;
$lan1 .= $lan2;
Powyższe wyrażenia są sobie równe, ponieważ tak jak w przypadku zwykłego dodawania, tak i tutaj podczas dodawania do jednego łańcucha do drugiego można użyć $l1 .= $l2, zamiast $l1 = $l1.$l2. Użycie kropki przy dodawaniu stringów zamiast + jest spowodowane potrzebą łatwej konwersji między różnymi typami, w tym między typem integer i string. Dzięki temu pisząc:
$wyn = 10+"2 butelki";
echo $wyn;

Do obsługi łańcuchów na pewno przydadzą ci się poniższe funkcje:

int strlen($lan) zwraca długość łańcucha (indeks ostatniej litery jest równy strlen($lan)-1)
string substr($lan,$p,$k) zwraca kawałek łańcucha, odciętego od znaku o indeksie równym $p; jeżeli zmienna $k nie ma wartości, to do końca łańcucha, jeżeli ma wartość dodatnią to aż do litery o $k większym indeksie od początku, jeżeli ma wartość ujemną to oznacza ilość liter od końca łańcucha
int strpos($lan1,$lan2) wyszukuje w pierwszym łańcuchu pierwszego wystąpienia drugiego łańcucha i zwraca jego indeks, a jeżeli to się nie uda zwraca wartość false

Jeżeli chcesz znać więcej funkcji obsługujących łańcuchy to wejdź na stronę PHP.net do działu dokumentacja.

W PHP ważne są też znaki specjalne. Oto ich lista:

n znak zakończenia linii
r przesunięcie karetki na początek lini (nr oznacza przesunięcie karetki na początek nowej linii)
$ wstawia znak dolara "$"
\ wstawia znak slasha ""
" wstawia cudzysłów "
t wstawia znak tabulacji

Nową linię można stworzyć także w podany poniżej sposób:

$lan1 = "to jest pierwsza linia
a to druga";