PHP – práce s proměnnými

16. června 2000

V předchozím díle jsme si ukázali, jakými značkami se příkazy PHP od HTML kódu oddělují a seznámili jsme se s příkazem „echo“. Na ten se dnes podíváme podrobněji a ukážeme si, jak se pracuje s proměnnými a operátory. Naučíme se také skriptu předávat hodnoty jako parametry URL.

V minulém díle jsme příkaz echo použili k vypsání aktuálního času. Příkaz vypadal takto:

echo Date („H:i:s“);


Echo však slouží k výpisu čehokoliv do výsledného kódu stránky, např. následující příklad vypíše tag <br> a zalomí řádek:

echo „<br>\n“;


Důležité si je všimnout si, že textové řetězce (a to nejen v tomto příkazu) se uzavírají do uvozovek a \n je znak pro nový řádek. Co když chceme vypsat řetězec, který sám uvozovky obsahuje? Použijeme tzv. escape sekvence (podobně jako v JavaScriptu) a před uvozovky, které se mají dostat do výsledného kódu, dáme zpětné lomítko (\“):

echo „<p align=\“center\“>Vycentrovaný odstavec</p>“;


Výše uvedený příkaz zapíše do výsledného kódu řetězec <p align=“center“>Vycentrovaný odstavec</p>. Samozřejmě základní částí každého jazyka jsou proměnné. V PHP se poznají podle znaku $, v názvu proměnné (na rozdíl od příkazů a funkcí) se rozlišují malá a velká písmena, můžeme používat i číslice a podtržítko (_). Malý příklad:

<html>
<head>
<meta http-equiv=“Content-Type“ content=“text/html; charset=windows-1250″>
<title>PHP – ukázka 2</title>
</head>
<body bgcolor=“#FFFFFF“ text=“#000000″>
<center><font face=“Arial CE, Arial“ size=“5″>
<?php
$petr = 154; // Petrova výška
$pavel = 176; // Pavlova výška
$karel = 189; // Karlova výška
$prumerna_vyska = ($petr + $pavel + $karel)/3;
/* a teď to zapíšeme na výstup */
echo „Průměrná výška je $prumerna_vyska cm.“;
?>
</font></center>
</body>
</html>


Jak skript pracuje? Nejprve uloží do proměnných $petr, $pavel a $karel hodnoty 154, 176 a 189. Poté spočítá z těchto hodnot průměr a uloží ho do proměnné $prumerna_vyska, pak prostřednictvím známého příkazu echo vypíše výsledek. Ve skriptu jsou ukázány dva způsoby psaní komentářů (ty samozřejmě nemají žádný vliv na chod skriptu). První způsob je psát krátké komentáře za dvě lomítka (//), druhý způsob je dávat komentáře mezi znaky /* a */ (takový komentář může zabírat i několik řádků). Zajímavé je, že proměnné můžeme psát přímo do řetězce, který má příkaz echo vypsat. Ten vždy řetězec projde a najde-li nějaké proměnné (pozná je podle $), dosadí místo nich jejich hodnoty. Samotný znak $ opět můžeme vypsat pomocí escape sekvence \$.

Při výpočtu průměrné výšky jsme použili i několik operátorů – většina se jich používá přirozeným způsobem, pořadí vykonávání se dá ovlivnit závorkami. Zajímavé operátory jsou ++ ($a++ zvýší hodnotu v proměnné $a o jedna) a — ($a– hodnotu v $a jednu sníží). V proměnných samozřejmě nemusí být jenom čísla, ale i řetězce:

$prvni_pulka = „Neříkej hop, „;
$druha_pulka = „dokud jsi nepřeskočil.“;
$prislovi = $prvni_pulka . $druha_pulka;
echo $prislovi;


V tomto krátkém příkladě je vidět použití řetězcových proměnných a operátoru . (ten slouží ke spojování řetězců). Skript tedy vypíše Neříkej hop, dokud jsi nepřeskočil. Ze skriptu je vidět, že řetězce se do proměnných ukládají jako čísla – i když PHP rozlišuje datové typy integer (celá čísla), double (desetinná čísla), string (řetězce), array (pole) a object (object), zpravidla se rozlišováním těchto typů vůbec nemusíme zatěžovat – PHP je natolik inteligentní, aby vše samo mezi jednotlivými typy automaticky převádělo. Proměnné také není třeba nijak inicializovat – před použitím je v nich uložena hodnota 0 nebo prázdný řetězec.

Pokud chceme uchovávat řadu hodnot, které jsou nějakým způsobem příbuzné a které chceme zpracovávat najednou, můžeme je uložit do pole. Jednotlivé položky pole jsou rozlišené indexem, ten píšeme do hranatých závorek:

$vyska[0] = 154;
$vyska[1] = 176;
$vyska[2] = 189;


Pokud neuvedeme do závorek žádný index, použije se první volný, ekvivalentně lze tedy pole naplnit takto:

$vyska[] = 154;
$vyska[] = 176;
$vyska[] = 189;


Dalším způsobem je použití příkazu Array:

$vyska = Array (154, 176, 189);


Jako indexy pole i hodnoty můžeme používat různé datové typy, můžeme tedy udělat třeba toto:

$vyska[„Petr“] = 154;
$vyska[„Pavel“] = 176.25;
$vyska[„Karel“] = „hodně“;


PHP skript, který by dělal pořád totéž, pochopitelně není moc zajímavý, proto nás zajímá, jak mu předat hodnoty proměnných (které uživatel zadá třeba ve formuláři). Podrobněji se zpracování údajů z formulářů budu věnovat v dalším díle, dnes jen popíšu, jak se předávají obsahy proměnných jako parametry URL. Pro ten účel použijeme mírně upravený předchozí skript počítající průměrnou výšku:

<html>
<head>
<meta http-equiv=“Content-Type“ content=“text/html; charset=windows-1250″>
<title>PHP – ukázka 3</title>
</head>
<body bgcolor=“#FFFFFF“ text=“#000000″>
<center><font face=“Arial CE, Arial“ size=“5″>
<?php
$prumerna_vyska = ($petr + $pavel + $karel)/3;
echo „Průměrná výška je $prumerna_vyska cm.“;
?>
</font></center>
</body>
</html>


Od předchozí verze se tento skript liší tím, že nejsou stanoveny hodnoty proměnných $petr, $pavel a $karel. Proto, pokud ho zavoláme „klasickým způsobem“, vyjde nám průměrná výška 0 cm (vzpomeňte si, že pokud do proměnných nic nepřiřadíme, jsou v nich nuly nebo prázdné řetězce!). Zajímavější je skript volat např. adresou „http://php.novyden.cz/ukazka3.php?petr=154&pavel=176&karel=189“ – výsledek je podobný jako v již uvedeném příkladu. Vše funguje jednoduše – za otazníkem v URL jsou popořadě uvedeny názvy a hodnoty jednotlivých proměnných, jednotlivé proměnné jsou navzájem odděleny znakem &. Názvy proměnných neobsahují $! Obecně vše vypadá takto:

http://www.server.cz/nazevskriptu.php?promenna1=hodnota1&promenna2=hodnota2 atd.


Sami si vyzkoušejte volat uvedený skript s různými hodnotami, ať si vše řádně osaháte. Ti z vás, kdo už mají větší zkušenosti s formuláři, ví, že stejně vypadá předání dat metodou GET.

Shrnutí anebo co si je třeba pamatovat

  • K výpisu textu a hodnot proměnných do výsledného kódu slouží příkaz echo.
  • Proměnné se označují znakem $ (např. $petr, $prumerna_vyska, $prislovi).
  • Index pole se píše do hranatých závorek (např. $a[0], $a[1], $a[„Petr“]).
  • Hodnoty promnných se mohou skriptu předat např. jako součást URL (za otazníkem jsou uvedeny jednotlivé názvy a hodnoty, jednotlivé proměnné jsou odděleny znakem &).

Jak již bylo řečeno, v příštím díle se budu zabývat zpracováním dat z formulářů, ukážu, jak zpracovaná data odeslat na emailovou adresu, zmíním se taky o podmínkách a cyklech.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

2 komentářů

  1. lok

    Bře 17, 2010 v 17:34

    Co presne ma znamenat:

    Zajímavější je skript volat např. adresou „http://php.novyden.cz/ukazka3.php?petr=154&pavel=176&karel=189“

    Respektive co znamena volat skrit adresou?

    Odpovědět
  2. vole

    Dub 23, 2013 v 10:20

    to znamena mit promenou nactenou z adresy…neni obsazena v kodu.

    Odpovědět

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *