3. diel - Premenné a typový systém v PHP
V minulej lekcii, Inštalácia Apache, MySQL a PHP na Windows a prvý PHP skript , sme si sprevádzkovali všetko potrebné k tomu, aby sme v PHP mohli programovať. V dnešnom PHP tutoriále si ukážeme základy syntaxe a prácu s premennými.
echo()
Zrekapitulujme si ešte príklad z minula, ktorý mal nasledujúce 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>
Už vieme, že PHP skript vyzerá ako bežná HTML stránka. Keďže má
však stránka príponu .php
, môže obsahovať časti označenej
značkami (direktívou) <?php
a ?>
. Tu sa môže
nachádzať kód, ktorý na serveri spustí PHP modul. Na toto miesto potom
vloží výsledok, ktorý kód vygeneroval.
Príkaz echo()
do stránky vypíše zadaný text.
echo()
je funkcia a za názov každej funkcie
píšeme zátvorky, do ktorých vložíme jej vstupné parametre. Pre
echo()
je parametrom text, ktorý sa má vypísať. Aj keby funkcie
nepotrebovala k svojej úlohe žiadny parameter, musíme tam napísať
zátvorky, v tom prípade prázdnej. PHP je na funkciách založené a ponúka
ich pomerne veľa. Väčšinu vecí si nemusíme programovať sami, ale
jednoducho zavoláme PHP funkciu, ktorá je vykoná. Namiesto funkcií sa dajú
používať aj objekty, s ktorými sa zatiaľ zaťažovať nebudeme, ale
zložitejšie aplikácie bez nich prakticky nemožno vytvoriť. Na tento seriál
nadväzuje niekoľko ďalších, ktoré potom tieto pokročilejšie techniky
vysvetľujú.
Zrovna u funkcie echo()
možno zátvorky vynechať,
ale u väčšiny iných funkcií to nedá. Príde mi prehľadnejšie písať je
všade, než je niekde mať a niekde nemať.
Funkciu echo()
odovzdávame v parametri text. V programovaní sa
texte hovorí textový reťazec, anglicky string
.
Textové reťazce píšeme do úvodzoviek, či už jednoduchých alebo
dvojitých. Je to z toho dôvodu, aby si PHP text neplietlo s ostatnými
príkazmi. Keď teda napíšeme napr .:
{PHP}
echo("echo");
{/PHP}
PHP vie, že je to druhé "echo"
len text a nebude si ho
všímať (vypíše jednoducho text echo
). Za každým príkazom
vždy nasleduje bodkočiarka. Príkazy píšeme na samostatné riadky. Syntax
PHP vychádza z céčka, v ktorom je PHP
mimochodom naprogramované. Je samozrejme podobná aj ďalším jazykom, čo z
céčka vychádzajú, napr. Jave alebo C #
.NET. Ak tieto jazyky poznáte, budete mať výhodu. Ak nie, všetko si tu
vysvetlíme od začiatku.
V stránke, ktorú vidí používateľ, už nie je po PHP ani pamiatky. Obsahuje len to, čo PHP vygenerovalo. Užívateľ sa teda k zdrojovému kódu v PHP nikdy nedostane. HTML stránka, ktorú vygeneroval skript vyššie, vyzerá 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 teda HTML nijako nenahrádza, je to len prostriedok k jeho generovanie. Obvykle máme nejakú HTML kostru, do ktorej dynamicky vkladáme obsah, ktorý nie je vopred známy a ktorý sa mení (napr. Komentáre v knihe návštev). Obsah sa často načíta z nejakej databázy.
Príklad vyššie by sme však dokázali urobiť aj bez PHP, že? Poďme do skriptu vložiť nejakú dynamickú funkčnosť.
Premenné
Slovo premenná by ste mali poznať zo školy. Pre Neprogramátori je to
miesto v pamäti, kam si môžeme ukladať dáta a potom s nimi pracovať.
Premenné pomenovávame ľubovoľným názvom bez medzier a diakritiky. Pred ich
názov píšeme vždy dolár ($
).
Vnútri PHP časti stránky si vytvoríme niekoľko premenných a naplníme ich rôznymi hodnotami:
$pozdrav = "Ahoj"; $vek = 15; $pi = 3.14;
Všimnite si, že sa premenné vždy volajú podľa toho, čo je v nich
uložené. Nie je nič horšie, ako uložiť napr. Vek do premennej
$a
, pozdrav do $b
a podobne. Vo svojich skriptoch by
ste sa za chvíľu nevyznali. Naopak ak máte 2 čísla a pomenujete je
$a
a $b
, je to v poriadku. Obsah nejaké premenné
môžeme samozrejme jednoducho vypísať pomocou funkcie 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}
Mali by ste vidieť nasledujúci výstup:
Určite ste si všimli, že do úvodzoviek dávame len text, čísla a premenné píšeme tak, ako sú.
Dátové typy
Každá premenná je určitého typu, týmto typom sa hovorí dátové. V
skripte sme si vytvorili premenné troch základných dátových typov. Pozdrav
je typu string
, o tom sme si už hovorili. $vek
je
typu int
, čo je celé číslo. $pi
je potom typu
double
(niekedy môžete naraziť aj na typ float
, v
PHP označujú obidva typy to isté, teda desatinné číslo).
PHP je tzv. Dynamicky typizovanom jazyk. To znamená, že dátové typy nemusíme u premenných zadávať (ako napríklad v jazyku C), ale PHP si typ podľa obsahu premennej nastaví samo. Medzi typy tiež PHP samo prevádza. Teoreticky nemusíme ani vedieť o tom, že premenná nejaký dátový typ má, prakticky by sme sa však niekedy mohli celkom diviť, keď by PHP samo previedlo niečo tak, ako sme to nečakali.
Sčítanie čísel a spájanie reťazcov
V PHP môžeme medzi číslami samozrejme používať základné počtové operácie, okrúhle zátvorky a ostatné premenné:
{PHP}
$r = 10;
$obsah = 3.14 * $r * $r;
echo("Obsah kruhu je $obsah cm<sup>2</sup>");
{/PHP}
výstup:
Kód vyššie vytvorí premennú $r
s hodnotou 10
.
Táto hodnota sa využije pri zadávaní obsahu premennej $obsah
.
Premenná $obsah
sa vypíše spolu s ďalším textom funkciou
echo()
.
Vidíte, že do reťazca môžeme jednoducho vložiť aj obsah premennej.
Funguje to však len s dvojitými úvodzovkami, s jednoduchými by sa vypísal
reťazec tak, ako je napísaný a premenná by sa do neho nevložila. Horného
indexu u štvorcových centimetrov sme dosiahli pomocou HTML tagu
<sup>
. Polomer by sa v reálnej aplikácii samozrejme zadal
nejakým formulárom, aby mala aplikácia nejaký význam. To ale zatiaľ
nevieme.
Už sme si hovorili, že PHP samo prevádza medzi rôznymi dátovými typmi. Vyskúšajme si to:
{PHP}
$a = 10;
$b = "20";
$c = $a + $b;
echo($c);
{/PHP}
Výstupom bude:
Hoci je premenná $b
zadaná ako text, PHP ju prevedie na
číslo akonáhle zistí, že jej chceme k niečomu pripočítať. Rovnaký
výsledok by sme dokonca dosiahli aj s týmto zadaním:
{PHP}
$a = 10;
$b = "20 rokov mi je";
$c = $a + $b;
echo($c);
{/PHP}
To už je trochu divoké a rozhodne to nebudeme robiť.
Rovnako, ako môžeme sčítať čísla, môžeme spájať textové reťazce.
Cudzím slovom sa tomu hovorí konkatenace (anglicky concatenation alebo
skrátene concat). Slúži na to operátor bodka (.
):
{PHP}
$a = 10;
$b = 20;
$veta = "Ahoj, je mi";
$soucet = $a + $b;
$spojeni = $a . $b;
echo("Tu je súčet čísel A a B: $soucet");
echo('<br />');
echo("Tu je spojenie reťazcov A a B: $spojeni");
echo('<br />');
echo('A ešte jeden príklad: ');
echo($veta . " " . $b . " rokov.");
{/PHP}
výstup:
Z výstupu programu vidíme rozdiel medzi sčítaním čísel a spájaním reťazcov. Všimnite si, že sme stále v HTML, ak chceme nový riadok, vložíme do stránky jednoducho HTML tag pre odriadkovanie.
Dnešné príklady máte k stiahnutiu v prílohe článku a ja sa na vás teším v budúcej lekcii, Textové reťazce druhýkrát a polia v PHP , kedy si uvedieme pole.
Mal si s čímkoľvek problém? Stiahni si vzorovú aplikáciu nižšie a porovnaj ju so svojím projektom, chybu tak ľahko nájdeš.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 1376x (1.68 kB)
Aplikácia je vrátane zdrojových kódov v jazyku php