Toto je druhý díl výukového seriálu o PHP. V tomto díle se podíváme na základní pravidla pro zápis proměnných.
Tato stránka slouží jen jako rychlý přehled. Pokud hledáte podrobný odborný popis všech vlastností, tak jsem napsal samostatný článek.
Proměnné v PHP začínají znakem dolaru $
, za kterým ihned následuje název.
$zvire = 'kočka';
Řetězce (posloupnosti znaků) se uzavírají do uvozovek nebo apostrofů:
$a = "uvozovky";$b = 'apostrofy';
Číslice se nezavírají do uvozovek:
$a = 5;$b = 10;$c = 3.14159;
Název promenné mohou tvořit jen znaky anglické abecedy a čísla. Název vždy začíná písmenem.
Pokud se název skládá z více slov, tak je zvyk používat camelCase
syntaxi (první písmeno malé a každé další slovo začíná velkým):
$kocka = 'koťáťko';$rychlyPocitac = 'Jasně, že můj!';$pocetRohuJednorozce = 1;
Název nesmí obsahovat mezery, pomlčky, háčky, čárky, uvozovky, závorky a další speciální znaky. Jediným povoleným speciálním znakem je podtržítko
.
Desetinná čísla se zapisují s tečkou:
$pi = 3.14159;
Dost často se může hodit provádět matematické operace přímo při definici proměnné:
$a = 5;$b = 3;$c = $a + $b; // sečte 5 + 3echo $c; // vypíše 8
Uvozovky a apostrofy nesmíme libovolně kombinovat. Pokud se rozhodneme použít například uvozovku, tak musím řetězec uvozovkou také ukončit a uvnitř ji nepoužít.
Toto je tedy špatně:
echo "<img src="obrazek.gif">";
Protože není jednoznačné, kde začíná a končí řetězec. Uvozovky ani apostrofy proto není možné zanořovat.
Jednomu z možných řešení se říká escapování, kdy se před problematický znak napíše zpětné lomítko (backslash).
echo "<img src=\"obrazek.gif\">";
Backslash říká, že následující znak bude přesně ten, který chceme použít.
Pro výpis HTML kódu je ovšem výhodnější celý řetězec obalit do apostrofů a pak uvozovky používat běžným způsobem:
echo '<img src="obrazek.gif">';
Případně to lze i otočit:
echo "<img src='obrazek.gif'>";
Adresy obsahující otazník nesou informace o vstupních proměnných, takže třeba index.php?page=kontakty
označuje proměnnou page
s hodnotou kontakty
. Hodnota této proměnné se přečte jako $_GET['page']
.
Znak otazníku nijak nesouvisí s názvem souboru na disku. Jedná se vždy o jeden a ten samý soubor, kterému v adrese předáváme parametry.
Podrobně tuto problematiku rozebírám v článku o metodách odesílání dat.
Některé proměnné jsou dostupné už v okamžiku spuštění scriptu (a můžeme je proto používat rovnou), tím se říká superglobální proměnné. Pokud chceme například přečíst hodnotu z URL adresy, použijeme proměnnou $_GET
.
Použití je následovné:
$a = $_GET['a'];echo $a;
Tento script vypíše do zdrojového kódu to, co má v URL adrese za otazníkem.
Pozor, tato ukázka není bezpečná! Pokud by nečestný návštěvník do URL adresy předal například HTML kód, tak bude vložen do stránky a vykonán. Výpis musíme proto vždy ošetřit, k tomu se používá funkce
htmlspecialchars()
.
$a = $_GET['a'];echo htmlspecialchars($a);
Pokud budeme přistupovat ke stránce bez uvedení parametru
?a=cokoli
, tak proměnná$_GET['a']
nebude existovat a PHP vyhodí chybové hlášení. Tento stav musíme ošetřit podmínkou a v případě neexistence proměnné neprovádět nic (nebo alternativně vypsat alternativní obsah). Existenci proměnné je možné ověřit funkcíisset()
.
if (isset($_GET['a'])) {$a = $_GET['a'];echo htmlspecialchars($a);} else {echo 'Proměnná "a" neexistuje!';}
S proměnnými z URL adresy můžeme dělat psí kusy, třeba je sečíst a rovnou výsledek vypsat:
echo $_GET['a'] + $_GET['b'];
Pokud chceme do URL adresy zapsat více vstupních parametrů, tak je musíme oddělit znakem ampersandu (&
). Adresa tedy může vypadat například takto: index.php?a=5&b=3
.
Také můžeme snadno propojit 2 textové vstupy (řetězce). Dělá se to pomocí operátoru tečky. Propojovat můžete v proměnné nebo při výpisu.
$a = 'pes';$b = 'kočka';echo $a . ' a ' . $b;
Vypíše pes a kočka
.
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:
Nabízím trénink vývojářů, konzultace, školení a analýzu návrhových vzorů. Osobně v Praze nebo online.
Napište mi, pokud si nevíte rady.
Lektor: Jan Barášek
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | cs