1. Znaki specjalne w ciągach otoczonych cudzysłowami
Sekwencja znaków
Znaczenie
\n
nowa linia
\r
powrót karetki (CR)
\t
tabulacja
\\
lewy ukośnik
\"
cudzysłów
\$
znak dolara
W ciągach otoczonych apostrofami zmienne nie są zastępowane. Jedynymi dopuszczalnymi sekwencjami sterującymi są te oznaczające lewy ukośnik (\\) i apostrof (\'). Sekwencje te pozwalają na wpisanie do ciągu znaku apostrofu i lewego ukośnika. Ciągi mogą być łączone przy użyciu operatora kropki (.). Dokładniej jest to opisane w części rozdziału na temat operatorów. Podobnie jak w języku C, mamy dostęp do poszczególnych znaków ciągu, traktując go jak tablicę znaków.
Wydruk 2.5. Przykład operacji na ciągach
<?php
Rozdział 2 – Język
24
$aStr1 = "To jest zwykły ciąg.";
print( "$aStr1<br>" );
$aStr2 = "Thatcher";
print( "$aStr2<br>" );
$aStr3 = "Nazywam się $aStr2";
// $aStr3 = "Nazywam się Thatcher"
print( "$aStr3<br>" );
$aStr4 = "Nazywam się \$aStr2";
// $aStr4 = "Nazywam się $aStr2"
print( "$aStr4<br>" );
$aStr5 = 'Nie rozwijaj \'$aStr2\'';
// $aStr5 = "Nie rozwijaj '$aStr2'"
print( "$aStr5<br>" );
// wypisuje "Nazywam się Thatcher i Nazywam się $aStr2"
print( "$aStr3" . " i " . "$aStr4" );
?>
Z powodu ulotnej natury typów w PHP, zmienne mogą zmieniać swój typ w zależności od kontekstu w jakim występują. Liczby mogą być konwertowane niejawnie na ciągi, jeżeli zostaną użyte jako argument operatora operującego na ciągach. Ciągi mogą również zostać skonwertowane na liczby, jeżeli będą użyte w wyrażeniach matematycznych. Jeżeli PHP próbuje skonwertować ciąg na liczbę, korzysta z następujących zasad:
• Jeżeli ciąg zaczyna się od danych numerycznych, zostaną one skonwertowane na liczbę.
• Jeżeli ciąg nie zaczyna się prawidłowymi danymi liczbowymi, wartością ciągu będzie zero (0).
• Jeżeli dane numeryczne zawierają jeden ze znaków .,e lub E, wartość będzie liczbą zmiennoprzecinkową a w przeciwnym przypadku liczbą całkowitą.
Prawidłowymi danymi numerycznymi są: opcjonalny znak po którym następuje jedna lub więcej cyfr, opcjonalna kropka dziesiętna oraz opcjonalny znak wykładnika. Znakiem wykładnika jest „e” lub „E”, po którym następuje jedna lub więcej liczb.
Wydruk 2.6. Niejawna konwersja pomiędzy ciągiem i liczbą
<?php
$aVar = 123;
print( "\$aVar = $aVar, typ = " . gettype( $aVar ) . "<br>" );
$aVar2 = $aVar . " niejawnie skonwertowane do ciągu";
print( "\$aVar2 = $aVar2, typ = " . gettype( $aVar2 ) . "<br>" );
$aVar3 = $aVar2 + 1; // niejawna konwersja na liczbę całkowitą
print( "\$aVar3 = $aVar3, typ = " . gettype( $aVar3 ) . "<br>" );
$aVar3 = $aVar2 * 1.1; // niejawna konwersja na liczbę zmiennoprzecinkową
print( "\$aVar3 = $aVar3, typ = " . gettype( $aVar3 ) . "<br>" );
$aNotNumber = "abc";
$aVar4 = $aNotNumber * 1; // próba konwersji na liczbę, zwracane jest 0
print( "\$aVar4 = $aVar4, typ = " . gettype( $aVar4 ) . "<br>" );
$aIsNumber = "3 małe świnki";
$aVar5 = $aIsNumber + 1; // konwersja $aIsNumber na liczbę 3
print( "\$aVar5 = $aVar5, typ = " . gettype( $aVar5 ) . "<br>" );
?>
Tablice
Tablice w PHP zachowują się zarówno tak jak tablice indeksowane (wektory) oraz jak tablice mieszające (asocjacyjne). PHP pozwala również na tworzenie tablic wielowymiarowych. Z powodu unikalnej konstrukcji tablic w PHP, można indeksować jeden wymiar tablicy wielowymiarowej liczbami a inny w sposób asocjacyjny.
Tablice mogą być tworzone przy użyciu funkcji list() lub array() albo poprzez jawne podanie każdej z wartości. W skorowidzu funkcji na końcu książki zostały opisane wszystkie funkcje do manipulacji tablicami.
Jednowymiarowe tablice mogą zamieniane w ciągach przez mechanizm zastępowania zmiennych na
wartości w sposób identyczny jak wszystkie inne zmienne. W przypadku tablic wielowymiarowych należy użyć nawiasów klamrowych do zaznaczenia indeksów. Poniższy wydruk pokazuje przykłady użycia różnych typów tablic.