Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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 .:

echo("echo");

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:

$pozdrav = "Ahoj";
$vek = 15;
$pi = 3.14;
echo($pozdrav);
echo('<br />');
echo($vek);
echo('<br />');
echo($pi);
echo('<br />');

Mali by ste vidieť nasledujúci výstup:

Tvoja stránka
localhost/Hello­World

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é:

$r = 10;
$obsah = 3.14 * $r * $r;
echo("Obsah kruhu je $obsah cm<sup>2</sup>");

výstup:

Tvoja stránka
localhost

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:

$a = 10;
$b = "20";
$c = $a + $b;
echo($c);

Výstupom bude:

Tvoja stránka
localhost

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:

$a = 10;
$b = "20 rokov mi je";
$c = $a + $b;
echo($c);

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 (.):

$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.");

výstup:

Tvoja stránka
localhost

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é 1347x (1.68 kB)
Aplikácia je vrátane zdrojových kódov v jazyku php

 

Predchádzajúci článok
Inštalácia Apache, MySQL a PHP na Windows a prvý PHP skript
Všetky články v sekcii
Základné konštrukcie jazyka PHP
Preskočiť článok
(neodporúčame)
Textové reťazce druhýkrát a polia v PHP
Článok pre vás napísal David Hartinger
Avatar
Užívateľské hodnotenie:
10 hlasov
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David sa informačné technológie naučil na Unicorn University - prestížnej súkromnej vysokej škole IT a ekonómie.
Aktivity