Kurz PHP – lekcia číslo 1 – premenné
Premenné a literály
Premenné a reťazce sú dve rôzne veci. Premenné sú symboly pre dáta. Reťazce sú samotné dáta. Pokiaľ takto používame surové dáta, nazývame ich literály (tým ich odlišujeme od premenných). Napríklad:
$priezvisko = "Tomanóczy";
$priezvisko je premenná zastupujúca hodnotu, ale “Tomanóczy” je samotná hodnota – literál. Ešte stojí za zmienku, že premenné spoznáte podľa toho, že začínajú znakom doláru ($).
Identifikátory
Čo to je? Názvy premenných. Pre tieto názvy platí niekoľko pravidiel…
- identifikátory môžu mať ľubovoľnú dĺžku a môžu sa skladať z písmen, čísel, znaku podtrhnutia (_) a znakov doláru ($).
- identifikátory nesmú začínať číslicou
- PHP je case sensitive, čiže sa rozlišujú veľké a malé písmená. $MeNo nie je to isté ako $meno!
- premenná môže mať rovnaký názov ako funkcia. To má ale za následok zmätok, tak sa tomu radšej vyhnite.
Premenné formulára
Získanie hodnôt položiek formulára je veľmi jednoduché, ale presná metóda závisí na konfigurácii v php.ini a verzii PHP. V skripte PHP môžete získať obsah ktoréhokoľvek pola formulára v podobe premenných PHP s rovnakým názvom, ako je názov tohto pola.
Podľa toho, v akej verzii PHP pracujete a na základe konfigurácie vášho PHP servera existujú celkom tri spôsoby, ako sa dostať k premenným formulára…
$priezvisko // krátky štýl
$_POST['priezvisko'] // stredný štýl
$HTTP_POST_VARS['priezvisko'] // dlhý štýl; nebudeme vôbec používať, je už zastaraný
Pár informácií…
- krátky štýl je pohodlný, ale vyžaduje, aby bolo v php.ini konfiguračné nastavenie “register_globals_ nastavené na “on”. Pri tomto štýle môžete vniesť do kódu také chyby, ktoré môžu spôsobiť, že váš kód sa stane nebezpečným.
- stredný štýl je tiež celkom pohodlný (ten budeme tiež používať) a dostupný od verzie PHP 4.1.0 .
- dlhý štýl je ‘najukecanejší’ a v dnešnej dobe sa už nepoužíva (takže môžete zabudnúť
Formulár môžeme odoslať dvoma metódami… Prvou je GET a druhou POST. Rozdiel medzi týmito dvoma premennými je v tom, že GET predáva hodnoty formulára v odkaze (napríklad index.php?pole=hodnota), ale pri POST sa najprv nadviaže spojenie so serverom a potom sú odoslané dáta (určite bezpečnejšie ako GET; budeme používať napríklad pri odosielaní citlivých údajov ako je heslo a pod.).
Keď odosielame dáta cez metódu GET, k poliam formulára pristupujeme cez premennú $_GET. Pri využití metódy POST použijeme premennú $_POST. Všetky odoslané hodnoty sa prenášajú v premennej $_REQUEST, ale o tom sa dozviete ďalej…
Dátové typy
Hodnotu priradíte premennej priraďovacím operátorom “=”, ako ste si už mohli všimnúť. Typ premennej špecifikuje, aký druh dát sa v nej nachádza. PHP rozlišuje nasledujúce dátové typy…
- Integer – celé čísla
- Double – reálne čísla
- String – reťazce znakov
- Boolean – logické hodnoty pravda/nepravda (teda true/false)
- Array – pole používané k uloženiu viacerých položiek rovnakého typu (o tom inokedy)
- Object – objekty používané k ukladaniu inštancií tried (viac v lekcii o OOP)
Vo väčšine programovacích jazykoch sa v premenných môžu uchovávať len hodnoty jedného určeného dátového typu a tento typ musí byť predom deklarovaný – napríklad v jazyku C. V PHP je typ premennej určený hodnotou, ktorá je v nej uložená.
Napríklad…
$cash = 0;
$total = 0.00;
Keďže sme do premennej $cash uložili hodnotu 0, stala sa z nej premenná typu Integer. Podobne sa z $total stala premenná typu Double. Akoby to nestačilo, môžeme do nášho kódu pridať:
$cash = "Hello world!";
…a premenná $cash je odrazu typu String. PHP mení typ premennej podľa toho, čo sa v nej aktuálne nachádza. Táto schopnosť nám môže byť neobyčajne užitočná. Skúste si zapamätať, že PHP “automaticky” rozpozná typ dát, ktoré stedo premennej uložili. Keď budeteúdaje z premennej získavať, vráti vám dáta tohto typu.
Môžete predstierať, že premenná alebo jej hodnota je iného typu tým, že jej tento typ priradíte. Stačí len pred premennú, ktorú chcete zmeniť pridáte v zátvorkách cielový typ. Napríklad môžeme dve premenné deklarovať pomocou priradenia typu takto:
$cash = 0;
$total = (double)$cash;
Druhý riadok inými slovami: “Zober hodnotu z $cash, interpretuj ju ako double a ulož ju do $total.” Premenná $total bude typu double. Priradenie typu (angl. type casting) nemení typ premennej, takže $cash zostane integer.
Konštanty
Ak ste dávali pozor viete, že môžeme meniť hodnotu uloženú v premennej. Taktiež môžeme definovať konštanty. Tie ukladajú dáta podobne ako premenné, ale nikde v skripte ich nemôžeme zmeniť. Môžeme napríklad do konštánt uložiť ceny nejakých produktov s použitím funkcie define:
define('MLIEKO', 20);
define('SYR', 14);
define('KLOBASA',42);
Všimnite si, že názvy konštánt sa píšu veľkými písmenami. Táto konvencia je prevzatá z jazyka C a umožňuje jednoducho rozlíšiť konštanty od premenných. Nie je povinná, ale sprehľadňuje kód. Ďalším rozdielom medzi premennými a konštantami je, že na konštanty sa neodkazujete znakom $. Keď chcete použiť hodnotu konštanty, jednoducho napíšete jej názov…
echo MLIEKO;
Obor premenných
Obor (scope) je termín, ktorý používame k určeniu oblasti “pôsobnosti” premennej, teda kde ju môžeme použiť. V PHP sú štyri druhy oboru:
- zabudované super globálne premenné sú použiteľné všade v skripte
- globálne premenné sú použiteľné v celom skripte, ale nie vnútri funkcií
- premenné deklarované vnútri funkcii sú lokálne vzhľadom k tejto funkcii
Nasleduje kompletný zoznam super globálnych premenných…
- $_GLOBALS – pole všetkých globálnych premenných
- $_SERVER – pole premenných prostredia serveru
- $_GET – pole premenných predaných do skriptu metódou GET
- $_POST – pole premenných predaných do skriptu metódou POST
- $_COOKIE – pole premenných cookies
- $_FILES – pole premenných vzťahujúcich sa k nahrávaniu súboru
- $_ENV – pole premenných prostredia
- $_REQUEST – pole všetkých užívateľských vstupných operácií
- $_SESSION – pole premenných sedenia
K jednotlivým premenným sa postupne dostaneme, až ich budeme potrebovať (AK ich budeme potrebovať
. Neskôr sa dozvieme viac o obore premenných, keď budeme preberať funkcie. Zatiaľ budeme pracovať s globálnymi premennými…
V ďalšej lekcii si rozoberieme problematiku všetkých možných operátorov
Dúfam, že sa naučíte písať v PHP práve vďaka tomuto kurzu… Prajem veľa zdaru pri absorbovaní ďalších lekcií!


Reagujte!