Toto je druhá časť série návodov o PHP. V tejto časti sa pozrieme na základné pravidlá zápisu premenných.
Táto stránka je len stručným prehľadom. Ak hľadáte podrobný technický opis všetkých funkcií, napísal som samostatný článok.
Premenné v PHP začínajú znakom dolára $
, za ktorým bezprostredne nasleduje názov.
$zvire = 'cat';
Reťazce (sekvencie znakov) sú uzavreté v úvodzovkách alebo apostrofoch:
$a = "úvodzovky";$b = "apostrofy;
Číslice sa neuvádzajú v úvodzovkách:
$a = 5;$b = 10;$c = 3.14159;
Názov premennej môže pozostávať len zo znakov anglickej abecedy a číslic. Názov sa vždy začína písmenom.
Ak sa názov skladá z viac ako jedného slova, je zvykom používať syntax camelCase
(prvé písmeno malé a každé ďalšie slovo začína veľkým písmenom):
$kocka = 'kitty';$rychlyPocitac = "Samozrejme, že je môj!;$pocetRohuJednorozce = 1;
Názov nesmie obsahovať medzery, pomlčky, háčiky, čiarky, úvodzovky, zátvorky ani iné špeciálne znaky. Jediný povolený špeciálny znak je podčiarknutie
.
Desatinné čísla sa píšu s bodkou:
$pi = 3.14159;
Pri definovaní premennej môže byť často užitočné vykonávať matematické operácie priamo:
$a = 5;$b = 3;$c = $a + $b; // pridajte 5 + 3echo $c; // vytlačí 8
Úvodzovky a apostrofy sa nesmú ľubovoľne kombinovať. Ak sa napríklad rozhodneme použiť úvodzovky, musíme nimi aj ukončiť reťazec a nepoužiť ich vo vnútri.
Preto je to nesprávne:
echo "<img src="obrazek.gif">";
Pretože nie je jasné, kde sa reťaz začína a kde končí. Úvodzovky a apostrofy sa nemôžu vkladať.
Jedno z možných riešení sa nazýva escapovanie, kde problematickému znaku predchádza spätné lomítko.
echo "<img src="image.gif\">";
Spätné lomítko hovorí, že nasledujúci znak bude presne ten, ktorý chceme použiť.
Pre výstup kódu HTML je však vhodnejšie uzavrieť celý reťazec do apostrofov a potom použiť úvodzovky bežným spôsobom:
echo '<img src="image.gif">';
Prípadne ho možno obrátiť:
echo "<img src='image.gif'>";
Adresy obsahujúce otáznik nesú informácie o vstupných premenných, takže napríklad index.php?page=contacts
označuje premennú page
s hodnotou contacts
. Hodnota tejto premennej sa načíta ako $_GET['page']
.
Znak otáznika nijako nesúvisí s názvom súboru na disku. Je to vždy ten istý súbor, ktorému odovzdávame parametre v adrese.
Tejto problematike sa podrobne venujem vo svojom článku o metódach odosielania údajov.
Niektoré premenné sú k dispozícii už v čase spustenia skriptu (a preto ich možno hneď použiť), nazývajú sa superglobálne premenné. Ak chceme napríklad prečítať hodnotu z adresy URL, použijeme premennú $_GET
.
Použitie je nasledovné:
$a = $_GET['a'];echo $a;
Tento skript vypíše do zdrojového kódu to, čo má v adrese URL za otáznikom.
Varovanie, táto vzorka nie je bezpečná! Ak by nepoctivý návštevník zadal do adresy URL napríklad kód HTML, vložil by sa do stránky a vykonal. Preto musíme výstup vždy ošetriť; na to sa používa funkcia
htmlspecialchars()
.
$a = $_GET['a'];echo htmlspecialchars($a);
Ak pristupujeme na stránku bez zadania parametra
?a=anything
, premenná$_GET['a']
nebude existovať a PHP vyhodí chybové hlásenie. Túto podmienku musíme ošetriť podmienkou a nerobiť nič, ak premenná neexistuje (prípadne vypísať alternatívny obsah). Existenciu premennej možno overiť pomocou funkcieisset()
.
if (isset($_GET['a'])) {$a = $_GET['a'];echo htmlspecialchars($a);} else {echo 'Premenná "a" neexistuje!';}
S premennými z adresy URL môžeme robiť psie kusy, napríklad ich sčítať a priamo zapísať výsledok:
echo $_GET['a'] + $_GET['b'];
Ak chceme do adresy URL zahrnúť viac vstupných parametrov, musíme ich oddeliť ampersandom (&
). Adresa môže vyzerať takto: index.php?a=5&b=3
.
Môžeme tiež ľahko prepojiť 2 textové vstupy (reťazce). Toto sa vykonáva pomocou operátora bodka. Odkaz môžete uviesť v premennej alebo pri výpise.
$a = "pes;$b = 'cat';echo $a . ' a ' . $b;
Je tam napísané "pes a mač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:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | sk