Začiatky v php: Premenné, konštanty a dátové typy

Rasťo Turek  /  03. 10. 2004, 20:36

Pre veľké množstvo začiatočníckych mailov, ktoré som dostal, som sa rozhodol pozrieť sa na základy php od úplneho začiatku. Dnes to budú premenné, konštanty a dátové typy.

Keďže ste mi poslali nespočetné množstvo mailov, ako spraviť to alebo to, rozhodol som sa pozrieť sa na základy php a kompletne ich rozobrať pekne od začiatku až po koniec čo pre nás v praxi znemená že prejdeme od premenných, operátory, príkazy, funkcie, polia, triedy, regulárne výrazy, súbory a práca s nimi, php a xml, obrázky a práca s nimi, maily v php, cookies a šablóny. Ale dosť bolo úvodu, poďme hneď na to.

Dátové typy
Php pozná tri základné dátové typy: celé čísla (integer), desatinné čísla (double) a reťazce (string). Samozrejme že existujú aj iné, zložitejšie dátové typy ako polia (array) a objekty (object). Tieto však necháme nateraz tak.
Každá premenná má svoj dátový typ, ktorý sa môže počas vykonávania práce skriptu meniť.
Celé čísla zaberajú v pamäti 4 bajty a používajú sa na prezentáciu celých čísel v rozsahu -2 miliardy do +2 miliardy.

7                       // toto je celé číslo
7.7                   // toto je desatinné číslo
“4”                   // toto je reťazec
“45 pohárov”  // toto je rovnako reťazec v inej podobe


Rozoznávame dva typy identifikátorov. Ak identifikátor môže počas behu skriptu meniť svoju hodnotu nazývame ho premenná (variable). Ak však nedokáže túto hodnotu meniť, nazývame ho konštanta (constant).

Pri premenných je dobre si zapamätať jednu vec. Php pre premenné (identifikátorov) rozlišuje veľké a malé písmená. To znamená že $cena a $Cena NIE JE to isté! Inak je to u vstavaných funkcií a štruktúr ako je napríklad aj príkaz na vypísanie reťazca do stránky echo. Teda ECHO a echo vyvolá rovnakú reakciu php.

Konštanty
Konštanty sú, ako sme si už povedali identifikátory, ktoré nedokážu meniť svoju hodnotu. Príkladom zo života nám môže byť hodnota pi (približne 3.14). Konštanty sa využívajú na priraďovanie hodnôt jednotlivým identifikátorom a ich následné použitie v našom skripte.
Výhodou konštánt je, že si môžete do nej nadefinovať nemennú konštantu a tú následne využívať v celom vašom skripte. Napríklad jednou z dosť stálych a nemenných konštánt je napríklad názov vašej firmy. Teda pre príklad ak máte firmu “Jankove záhradnícke potreby”, tak nemusíte tento názov vypisovať 10x ale stačí, keď si ju zadefinujete a následne voláte vo vašom skripte. Tým si hodne sprehľadníte vaše skripty, keďže nahradíte dlhý text kratučkou skratkou. To však je minimálna výhoda. Tou hlavnou je, že pri zmene tejto hodnoty ju nemusíte stále vyhľadávať, ale zmeníte ju na jednom mieste a ona sa následne zmení všade.

Pre definovanie konštánt využívame funkciu define()
define (“FIRMA”, “Jankove záhradnícke potreby“);
define (“MENO“, “Janko“);

Takýchto príkladov by ste si vedeli predstaviť aj vy určite dosť.
Teraz si ukážeme ako to využiť v praxi. Keď chcete vypísať meno vašej spoločnosti do stránky, spravíte to nasledovne:
echo “Vitajte na stránkach firmy “. FIRMA;

Pre niektorých sa môže tento zdať byť tento zápis nezrozumiteľný, ale ako Vám ukážem, nie je to tak.
Pri zápise som využil operátor pre spájanie reťazcov, ktorým je samotná . (bodka). Týmto sa síce budeme zaoberať až neskôr ale pre pochopenie ešte jeden príklad.
echo “firma “ . $firma;

Samozrejme že by možno bolo aj jednoduchšie napísať ten text definovaný v premennej do úvodzoviek, ale verte, že keď bude programovať, tak sa vám veľmi zídu konštanty.

Samozrejme že sa dá aj overiť, či takáto konštanta existuje. Veľmi výhodne to využijete ako ochranu proti chybe skriptu, ktorý by mohol stratiť definíciu konštanty. Na overenie slúži príkaz defined()

if(!defined(FIRMA))
{
define (“FIRMA”, “Jankove záhradnícke potreby“);
}


Týmto kratučkým príkazom overíte, čí náhodou takáto premenná neexistuje a ak nie, tak ju nadefinujete.

Predefinované konštanty
Php samozrejme obsahuje aj niektoré už preddefinované konštanty. Tými najhlavnejšími a najpoužívanejšími sú TRUE (pravda) a FALSE (nepravda) ktoré majú preddefinované hodnoty 1 pre TRUE a 0 pre FALSE. Ďalej konštanta PHP_OS vám vráti aktuálne používaný systém a PHP_VERSION aktuálne používané php.

echo(PHP_OS); // u mňa WINNT

No a php samozrejme ešte používa preddefinované premenné, ktoré vám poskytujú informácie o prostredí, v ktorom php beží. Ak ich chcete zobraziť použite funkciu phpinfo();

phpinfo();

Priraďovanie hodnôt premenným
Operátorom priradenia je = . Teda úplne jednoducho môžete premennej meno pridať hodnotu Jano.

$meno = “Jano”; // premenná meno má teraz hodnotu Jano
$cislo = 55; // premenná cislo má teraz hodnotu 55
$text = “Ahojte všetci”; // premenná text má teraz hodnotu Ahojte všetci


Automatické pretypovanie premenných
Ako sme si povedali už na začiatku, každá premenná ma svoj dátový typ. Tento dátový typ je určený automaticky premennou. Teda:

$t = 1; // $t je celé číslo (integer)
$t = 5.88; // $t je desatinné číslo (double)
$t = “b”; // $t je reťazec (string)

Je aj možnosť explicitného pretypovania. To znamená, že môžeme zmeniť typ premennej.

$t = 5.88 // $t je desatinné číslo
$t = (int) $t // $t je teraz celé číslo s hodnotou 5
$t = (double) $t // $t je teraz opäť desatinné číslo s hodnotou 5.0
$t = (string) $t // $t je teraz reťazec s hodnotou 5


Funkcie pre prácu s premennými
Php ma vstavaných niekoľko funkcií pre prácu s premennými. Teraz sa pozrieme na niekoľko úplne najpoužívanejších.

gettype();
Táto funkcia nám zistí typ premennej. Vracia jednu z týchto hodnôt:
-   integer (celé číslo)
-   double (desatinné číslo)
-   string (reťazec)
-   array (pole)
-   object (objekt)
-   class (trieda)
-   unknown type (neznámy typ)
Táto funkcia sa dá výborne využiť ak chcete zistiť, či užívateľ nezadal do poľa formulára nejaké bludy.

if(gettype($vek) == ”integer”)
{
echo “správne zadaný typ”;
}
else
{
echo “nesprávne zadaný typ”;
}


settype()
Táto funkcia explicitne nastavuje typ premennej. Typ sa zapíše ako reťazec a môže byť jedným z týchto typov: array, double, integer, object a string. Ak sa typ nepodarilo zmeniť, je vrátene FALSE.

$t = 5.8; // $t je desatinné číslo
settype($t, “integer”); // $t je teraz už celé číslo


isset() a unset()
isset() sa používa na zistenie, či bola premennej priradená určitá hodnota. unset() sa používa na uvoľnenie pamäte odstránením hodnoty premennej.

$meno = “Jano”;
if(isset($meno))
{
echo “Tento text sa vypíše”;
}

unset($meno);
if(isset($meno))
{
echo “Tento text sa nevypíše”;
}


empty()
Táto funkcia je skoro úplný opak funkcie isset(). Vracia TRUE ak je premenná prázdna (nemá priradenú hodnotu), alebo je hodnota prázdna.

echo empty($meno); // vráti TRUE

$meno = “jano”;
echo empty($meno); // vráti FALSE

$meno = “”;
echo empty($meno); // vráti TRUE

$meno = “0”;
echo empty($meno); // vráti TRUE

$meno = “www.inet.sk”;
echo empty($meno); // vráti FALSE

unset($meno);
echo empty($meno); // vráti TRUE


is…()
Funkcie is_int(), is_integer(), is_long sú synonymá. Funkcie zisťujú, či je premenná celé číslo.
is_double(), is_float() a is_real() zisťujú, či je premenná desatinným číslom.
is_string(), is_array() a is_object() zisťujú, či sa jedná o daný dátový typ.

$cislo = “555”;
if(is_int($cislo))
{
echo $cislo;
}


Toto je na dnes úplne všetko. Dúfam, že som vám priblížil premenné a prácu s nimi. Nabudúce sa pozrieme na Operátory.

Chcem všetkých poprosiť, aby ospravedlnili prípadné gramatické chyby. Snažím sa plne sústrediť na článok, ktorý píšem a potom si niekedy nedávam pozor.
Ďalej by som vás chcel poprosiť, aby ste mi posielali všetky možné otázky, zmeny, chyby a hlavne kritiku, aby som mohol tento seriál čo najviac skvalitniť.

Prajem Vám všetkým pekný deň.
Rastislav Turek // lammer.sk

Neprehliadnite: