Zásady zápisu proměnných

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.

Základní syntaxe

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 + 3
echo $c;        // vypíše 8

Správné vložení uvozovky nebo apostrofu

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'>";

Naplnění proměnné z url adresy nebo z formuláře

Adresy obsahující otazník nesou informace o vstupních proměnných, takže třeba index.php?stranka=kontakty označuje proměnnou stranka s hodnotou kontakty. Hodnota této proměnné se přečte jako $_GET['stranka'].

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.

Definice obsahu proměnné z adresy

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!';
}

Příklad s počítáním

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.

Propojení textových vstupů (řetězců)

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.

Sponzorované odkazy
Pomohl Vám tento článek?

Díly seriálu

Toto je druhý díl výukového seriálu o PHP, kde se naučíme základní principy používání proměnncýh. Vytvoříme si proměnnou, uložíme do ní hodnotu a předvedeme si základní početní operace.

Předchozí díl seznamuje s principem psaní PHP scriptů, zejména jak jazyk funguje.

Další díl pojednává o čistotě kódu a jak jej psát tak, aby se v něm dalo dobře orientovat i dalším lidem.


Nejčastějí dotazy začátečníků