Jest to druga część serii poradników na temat języka PHP. W tym odcinku zapoznamy się z podstawowymi zasadami pisania zmiennych.
Ta strona to tylko krótki przegląd. Jeśli szukasz szczegółowego opisu technicznego wszystkich funkcji, napisałem oddzielny artykuł.
Zmienne w PHP zaczynają się od znaku dolara $
, po którym następuje nazwa.
$zvire = 'cat';
Ciągi (sekwencje znaków) są ujęte w cudzysłowy lub apostrofy:
$a = "Znaki cudzysłowu";$b = 'apostrofy';
Cyfry nie są ujmowane w cudzysłów:
$a = 5;$b = 10;$c = 3.14159;
Nazwa zmiennej może składać się tylko ze znaków alfabetu angielskiego i cyfr. Nazwa zawsze zaczyna się od litery.
Jeśli nazwa składa się z więcej niż jednego słowa, zwyczajowo stosuje się składnię camelCase
(pierwsza litera mała, a każde inne słowo zaczyna się wielką literą):
$kocka = 'Kitty';$rychlyPocitac = 'Oczywiście, że to moje!';$pocetRohuJednorozce = 1;
Nazwa nie może zawierać spacji, myślników, haczyków, przecinków, cudzysłowów, nawiasów ani innych znaków specjalnych. Jedynym dozwolonym znakiem specjalnym jest podkreślenie
.
Liczby dziesiętne zapisuje się z kropką:
$pi = 3.14159;
Często przydatne może być wykonywanie operacji matematycznych bezpośrednio podczas definiowania zmiennej:
$a = 5;$b = 3;$c = $a + $b; // dodaj 5 + 3echo $c; // drukuje 8
Nie wolno dowolnie łączyć cudzysłowów i apostrofów. Na przykład, jeśli zdecydujemy się na użycie cudzysłowu, musimy również zakończyć łańcuch cudzysłowem, a nie używać go wewnątrz.
Dlatego jest to błędne:
echo "<img src="obrazek.gif">";
Ponieważ nie jest jasne, gdzie zaczyna się i kończy łańcuch. Dlatego cudzysłowy i apostrofy nie mogą być zagnieżdżane.
Jednym z możliwych rozwiązań jest escaping, w którym problematyczny znak jest poprzedzony odwrotnym ukośnikiem.
echo "<img src="image.gif">.";
Odwrotny ukośnik oznacza, że następnym znakiem będzie dokładnie ten, którego chcemy użyć.
Jednak w przypadku kodu HTML lepiej jest objąć cały łańcuch apostrofami, a następnie użyć cudzysłowów w normalny sposób:
echo '<img src="image.gif">.';
Można też odwrócić ten proces:
echo "<img src='obrazek.gif'>.";
Adresy zawierające znak zapytania przenoszą informacje o zmiennych wejściowych, tak więc na przykład index.php?page=kontakty
oznacza zmienną strona
z wartością kontakty
. Wartość tej zmiennej jest odczytywana jako $_GET['strona']
.
Znak zapytania nie jest w żaden sposób związany z nazwą pliku na dysku. Jest to zawsze ten sam plik, do którego przekazujemy parametry w adresie.
Szczegółowo omawiam tę kwestię w artykule na temat metod przesyłania danych.
Niektóre zmienne są dostępne już w momencie uruchamiania skryptu (i dlatego można ich od razu używać) - są to zmienne superglobalne. Na przykład, jeśli chcemy odczytać wartość z adresu URL, używamy zmiennej $_GET
.
Sposób użycia jest następujący:
$a = $_GET['a'];echo $a;
Ten skrypt wypisuje do kodu źródłowego to, co znajduje się w adresie URL po znaku zapytania.
Ostrzeżenie, ta próbka nie jest bezpieczna! Jeśli nieuczciwy użytkownik wprowadziłby w adresie URL na przykład kod HTML, zostałby on umieszczony na stronie i wykonany. Dlatego zawsze musimy traktować dane wyjściowe; służy do tego funkcja
htmlspecialchars()
.
$a = $_GET['a'];echo htmlspecialchars($a);
Jeśli wejdziemy na stronę bez podania parametru
?a=anything
, zmienna$_GET['a']
nie będzie istnieć i PHP wyrzuci komunikat o błędzie. Musimy potraktować ten warunek jako warunek i nie robić nic, jeśli zmienna nie istnieje (lub ewentualnie wypisać alternatywną treść). Istnienie zmiennej można sprawdzić za pomocą funkcjiisset()
.
if (isset($_GET['a'])) {$a = $_GET['a'];echo htmlspecialchars($a);} else {echo 'Zmienna "a" nie istnieje!';}
Mając zmienne z adresu URL, możemy wykonać zadania dla psów, na przykład zsumować je i bezpośrednio wypisać wynik:
echo $_GET['a'] + $_GET['b'];
Jeśli chcemy umieścić w adresie URL więcej parametrów wejściowych, musimy oddzielić je znakiem ampersand (&
). Adres ten może wyglądać następująco: index.php?a=5&b=3
.
Można także łatwo połączyć 2 wejścia tekstowe (ciągi znaków). Służy do tego operator kropki. Łącze można zamieścić w zmiennej lub podczas wpisywania na listę.
$a = 'pies';$b = 'cat';echo $a . 'a' . $b;
Jest tam napisane "pies i kot".
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | pl