Lekce 3 - Proměnné a typový systém v PHP

Vydávání, hosting a aktualizace umožňují jeho sponzoři.
V minulé lekci, Instalace Apache, MySQL a PHP na Windows a první PHP skript, jsme si zprovoznili vše potřebné k tomu, abychom v PHP mohli programovat. V dnešním PHP tutoriálu si ukážeme základy syntaxe a práci s proměnnými.
Echo
Zrekapitulujme si ještě příklad z minula, který měl následující podobu:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
echo("Tento text do stránky vložilo PHP");
?>
</body>
</html>
Již víme, že PHP skript vypadá jako běžná HTML stránka. Jelikož má
však stránka příponu .php, může obsahovat části označené značkami
(direktivou) <?php
a ?>
. Zde se může nacházet
kód, který na serveru spustí PHP modul. Na toto místo potom vloží
výsledek, který kód vygeneroval.
Příkaz echo do stránky vypíše zadaný text. Echo
je
funkce a za název každé funkce píšeme závorky, do
kterých vložíme její vstupní parametry. V echu je parametrem text, který
se má vypsat. I kdyby funkce nepotřebovala ke své úloze žádný parametr,
musíme tam napsat závorky, v tom případě prázdné. PHP je na funkcích
založené a nabízí jich poměrně hodně. Většinu věcí si nemusíme
programovat sami, ale prostě zavoláme PHP funkci, která je vykoná. Namísto
funkcí se dají používat i objekty, se kterými se zatím zatěžovat
nebudeme, ale složitější aplikace bez nich prakticky nelze vytvořit. Na
tento seriál navazuje několik dalších, které potom tyto pokročilejší
techniky vysvětlují.
Pozn.: Zrovna u funkce echo
lze závorky vynechat, ale u
většiny jiných funkcí to nelze. Přijde mi přehlednější psát je všude,
než je někde mít a někde nemít.
Funkci Echo()
předáváme v parametru text. V programování se
textu říká textový řetězec, anglicky String
.
Textové řetězce píšeme do uvozovek, ať už jednoduchých nebo dvojitých.
Je to z toho důvodu, aby si PHP text nepletlo s ostatními příkazy. Když
tedy napíšeme např.:
{PHP}
echo("echo");
{/PHP}
PHP ví, že je to druhé echo jen text a nebude si ho všímat (vypíše prostě text echo). Za každým příkazem vždy následuje středník. Příkazy píšeme na samostatné řádky. Syntaxe PHP vychází z céčka, ve kterém je PHP mimochodem naprogramované. Je samozřejmě podobná i dalším jazykům, co z céčka vycházejí, např. Javě nebo C# .NET. Pokud tyto jazyky znáte, budete mít výhodu. Pokud ne, vše si zde vysvětlíme od začátku.
Ve stránce, kterou vidí uživatel, již není po PHP ani památky. Obsahuje jen to, co PHP vygenerovalo. Uživatel se tedy ke zdrojovému kódu v PHP nikdy nedostane. HTML stránka, kterou vygeneroval skript výše, vypadá takto:
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> Tento text do stránky vložilo PHP </body> </html>
PHP tedy HTML nijak nenahrazuje, je to pouze prostředek k jeho generování. Obvykle máme nějakou HTML kostru, do které dynamicky vkládáme obsah, který není předem známý a který se mění (např. komentáře v knize návštěv). Obsah se často načítá z nějaké databáze.
Příklad výše bychom však dokázali udělat i bez PHP, že? Poďme do skriptu vložit nějakou dynamickou funkčnost.
Proměnné
Slovo proměnná byste měli znát ze školy. Pro neprogramátory je to
místo v paměti, kam si můžeme ukládat data a potom s nimi pracovat.
Proměnné pojmenováváme libovolným názvem bez mezer a diakritiky. Před
jejich název píšeme vždy dolar ($
).
Uvnitř PHP části stránky si vytvoříme několik proměnných a naplníme je různými hodnotami:
$pozdrav = "Ahoj"; $vek = 15; $pi = 3.14;
Všimněte si, že se proměnné vždy jmenují podle toho, co je v nich
uloženo. Není nic horšího, než uložit např. věk do proměnné
$a
, pozdrav do $b
a podobně. Ve svých skriptech
byste se za chvíli nevyznali. Naopak pokud máte 2
čísla a
pojmenujete je $a
a $b
, je to v pořádku. Obsah
nějaké proměnné můžeme samozřejmě jednoduše vypsat pomocí funkce
echo
. Upravme náš kód:
{PHP}
$pozdrav = "Ahoj";
$vek = 15;
$pi = 3.14;
echo($pozdrav);
echo('<br />');
echo($vek);
echo('<br />');
echo($pi);
echo('<br />');
{/PHP}
Měli byste vidět následující výstup:
Určitě jste si všimli, že do uvozovek dáváme pouze text, čísla a proměnné píšeme tak, jak jsou.
Datové typy
Každá proměnná je určitého typu, těmto typům se říká datové. Ve
skriptu jsme si vytvořili proměnné třech základních datových typů.
Pozdrav je typu String
, o tom jsme si již říkali.
$vek
je typu int
, což je celé číslo.
$pi
je potom typu double (někdy můžete narazit
i na typ float, v PHP označují oba typy to samé, tedy desetinné
číslo).
PHP je tzv. dynamicky typovaný jazyk. To znamená, že datové typy nemusíme u proměnných zadávat (jako třeba v jazyce C), ale PHP si typ podle obsahu proměnné nastaví samo. Mezi typy také PHP samo převádí. Teoreticky nemusíme ani vědět o tom, že proměnná nějaký datový typ má, prakticky bychom se však někdy mohli docela divit, když by PHP samo převedlo něco tak, jak jsme to nečekali.
Sčítání čísel a spojování řetězců
V PHP můžeme mezi čísly samozřejmě používat základní početní operace, kulaté závorky a ostatní proměnné:
{PHP}
$r = 10;
$obsah = 3.14 * $r * $r;
echo("Obsah kruhu je $obsah cm<sup>2</sup>");
{/PHP}
Výstup:
Kód výše vytvoří proměnnou $r
s hodnotou 10
.
Tato hodnota se využije při zadávání obsahu proměnné $obsah
.
Proměnná $obsah
se vypíše spolu s dalším textem funkcí
echo
.
Vidíte, že do řetězce můžeme jednoduše vložit i obsah proměnné.
Funguje to však pouze s dvojitými uvozovkami, s jednoduchými by se vypsal
řetězec tak, jak je napsaný a proměnná by se do něj nevložila. Horního
indexu u čtverečních centimetrů jsme dosáhli pomocí HTML tagu
<sup>
. Poloměr by se v reálné aplikaci samozřejmě zadal
nějakým formulářem, aby měla aplikace nějaký význam. To ale zatím
neumíme.
Již jsme si říkali, že PHP samo převádí mezi různými datovými typy. Vyzkoušejme si to:
{PHP}
$a = 10;
$b = "20";
$c = $a + $b;
echo($c);
{/PHP}
Výstupem bude:
Ačkoli je proměnná $b
zadána jako text, PHP ji převede na
číslo jakmile zjistí, že jí chceme k něčemu přičíst. Stejného
výsledku bychom dokonce dosáhli i s tímto zadáním:
{PHP}
$a = 10;
$b = "20 let mi je";
$c = $a + $b;
echo($c);
{/PHP}
To už je trochu divoké a rozhodně to nebudeme dělat.
Stejně, jako můžeme sčítat čísla, můžeme spojovat textové
řetězce. Cizím slovem se tomu říká konkatenace (anglicky concatenation
nebo zkráceně concat). Slouží k tomu operátor tečka (.
):
{PHP}
$a = 10;
$b = 20;
$veta = "Ahoj, je mi";
$soucet = $a + $b;
$spojeni = $a . $b;
echo("Zde je součet čísel A a B: $soucet");
echo('<br />');
echo("Zde je spojení řetězců A a B: $spojeni");
echo('<br />');
echo('A ještě jeden příklad: ');
echo($veta . " " . $b . " let.");
{/PHP}
Výstup:
Z výstupu programu vidíme rozdíl mezi sčítáním čísel a spojováním řetězců. Všimněte si, že jsme stále v HTML, pokud chceme nový řádek, vložíme do stránky prostě HTML tag pro odřádkování.
Dnešní příklady máte ke stažení v příloze článku a já se na vás těším v příští lekci, Textové řetězce podruhé a pole v PHP, kdy si uvedeme pole.
Stáhnout
Staženo 999x (710 B)
Aplikace je včetně zdrojových kódů v jazyce php
Komentáře


Zobrazeno 64 zpráv z 64.