| Rubrika Pre začiatočníkov
III. Základy: Polia a premenné
INTEGER | číslo
Typ premennej integer, ako sme si v minulej časti spomenuli, sa používa pre
celé číslo. Je reprezentovaný 4 bajtmi. Čísla možno deklarovať
v desiatkovej, šestnásťkovej alebo osmičkovej sústave (prefix 0). Preto ak
priradíte premennej číslo 0777 (nula je prefix a 777 je zadané
v sedmičkovej sústave), nečudujte sa, že jej hodnota bude 511, pretože
taká je jej hodnota v desiatkovej sústave.
STRING | reťazec
String zase používame pre reťazce. Tieto zapisujeme pomocou úvodzoviek ",
alebo apostrofov '. Ak je potrebné použiť špeciálny znak – rezervovaný
pre potrebny PHP – vo vnútri reťazca, použijeme tzv. escape sekvencie,
ktoré spočívajú v pridaní spätnej lomky pred escapovaný znak. Tieto
sekvencie je možné použiť len v reťazcoch uzavretých v úvodzovkách.
Jednotlivé escape sekvencie :
<? echo "\\"; // vypíše spätnú lomku echo "\""; // vypíše úvodzovky echo "\$"; // vypíše dolár ?>
Ak je premenná zložená z viacerých prvkov (prvok = znak = pismeno), pristupujeme k nim ako k prvkom poľa. Pole je číslované od nuly a číslo udávame do hranatých zátvoriek [ ] .
<? $a = 0777; // hodnota premennej je 511 echo "hodnota premennej \$a je $a"; // v reťazci je escape sekvencia, preto sú použité úvodzovky echo 'toto je čistý text'; // čistý text môžu uzatvárať apostrofy $b = "Text"; echo $b[2]; // vypíše X - lebo je tretím prvkom reťazca "text" (číslované od nuly) $c = 10; $sucet = $a + $c; echo "Vysledok je $sucet"; //vypise 521 ?>
DOUBLE
Double reprezentuje desatinné číslo uložené v ôsmich bajtoch. Čísla je možné zadávať aj v exponenciálnom tvare.
<? $premenna = 4.2e3 // exponenciálny tvar ?>
POLE
Pole je dátová štruktúra viacerých premenných, ktoré sú pristupné pomocou indexu – kľúču. Index sa zapisuje do hranatých zátvoriek a môže byť číselného tvaru, ale aj prezentovaný reťazcom. Pokiaľ je prezentovaný reťazcom, hovoríme o „asociatívnom“ poli. Jednotlivé prvky poľa môžu byť ľubovoľného typu, dokonca aj ďalším poľom, v tom prípade ide o tzv. dvoj a viac rozmerné pole.
<? $zviera[0] = "lev"; $zviera[1] = "tiger"; $zviera[2] = "mačka"; $rozne[0] = "Kravata"; $rozne[5] = 6; $rozne[18] = 10.254; $autor["Fero"] = "Feroslav Knižný"; $autor["Jano"] = "Ján Mrkvička"; ?>
Ak chceme do poľa priradiť viacej hodnôt môžme na to použiť funkciu array. Funkcia bude ukladať hodnoty od určitého indexu, alebo automaticky od nuly. Viac napovie príklad – nasledujúce zápisy sú ekvuivalentné :
<? $den[] = "Pondelok"; // indexuje sa automaticky od nuly $den[] = "Utorok"; $den[] = "Streda"; //S funkciou array to bude vyzerať nasledovne : $den = Array("Pondelok","Utorok","Streda"); //Ak chceme indexovať od určitého čísla použijeme na to operátor => . $den = Array(1=>"Pondelok","Utorok","Streda"); // indexujeme od 1 ?>
Niekedy je vhodné použiť viacrozmerné polia. Viacrozmerné pole je vlastne jedno jednorozmerné pole vložené do druhého. Dobrou ukážkou je jednoduchý príklad, ktorý vypočíta súčet prvkov na diagonále v nasledujúcej tabuľke :
| 2 | 4 | 5 |
| 1 | 0 | 4 |
| 5 | 4 | 1 |
<? $diagonala = Array(Array(2,4,5),Array(1,0,4),Array(5,4,1)); // takýto zápis znamená, že v poli $diagonala na pozícií nula bude ďalšie pole s obsahom hodnôt 2, 4 a 5. (atď.) // ekvivalentom zápisu by mohlo byť: $diagonala[0] = array(2,4,5); $diagonala[1] = array(1,0,4); $diagonala[2] = array(5,4,1); // zápis diagonala[0][0] vráti z poľa $diagonala pozíciu kľúč nula, na ktorom sa nachádza ďalšie pole. Druhá nula v hranatých zátvorkách značí ktorú pozíciu z druhého poľa má skript vybrať. $vysledok=$diagonala[0][0]+$diagonala[1][1]+$diagonala[2][2]; echo $vysledok; ?>
PRETYPOVANIE PREMENNÝCH
Ako som už spomínal nemusíme premenným nastavovať typ. PHP si ho určí
samo. Napríklad ak sčítame číslo (integer) s desatinným číslom
(double), výsledok bude double. K pretypovaniu premenných nám slúži
funkcia SetType().
<? SetType($premenna,"typ"); ?>
Ak chceme zistiť typ premennej použijeme funkciu GetType()
<? GetType($premenna); ?>
Môžeme tiež použiť funkcie (tieto funkcie majú využitie najmä pri
podmienkach – o tých si, ale povieme neskôr): Is_Integer, Is_Double,
Is_String, Is_Array, Is_Object
<? $a = 10; // integer $b = 10.5; // double $vysledok = $a + $b; //double echo $vysledok; //vypise 20.5 SetType($vysledok,"integer"); //pretypovanie na integer echo $vysledok; //vypise 20 $typ = GetType($vysledok); //zisti typ premennej echo $typ; //vypise integer SetType($vysledok,"double"); //pretypovanie spat na double echo $vysledok; //vypise 20 $typ = GetType($vysledok); echo $typ; //vypise double ?>
KONŠTANTY
Konštanta takisto ako premenná nesie hodnotu, ale s tým rozdielom, že je
nemenná – konštantná. Premenná ako to aj s názvu vyplýva svoju hodnotu
môže meniť, kdežto konštantná má hodnotu len jednu a na jej definovanie
používame funkciu define
define("meno_konstanty",hodnota,citlivosť na velkost pismen);
Posledný parameter – citlivosť na veľkosť písmen nie je povinný – a zadáva sa v tvare: true – nie je citlivý, false – je citlivý. Pokiaľ parameter nezadáme, PHP sa štandardne chová ako case-sensitive, čiže konštanta bude citlivá na veľkosť písmen.
define("dni_v_roku",365); echo dni_v_roku; // vypíše 365 echo DNI_v_ROKU; // vypíše DNI_v_ROKU
Narozdiel od premenných pri konštantách nepoužívame prefix $.
Matej Lacko
naspäť
prispieť do diskusie [4]
Vyhľadávanie
Posledných 5 komentárov
Pridať komentár / čítať diskusiu
-
Rado: Clanok musim pochvalit pomohol mi. Preberam vsetko...
-
sonny: Píše to úplne v pohode, rozumieť tomu...
-
lubomir Dankovic: Veru tak, sm z toho uplny magor,...
-
peto: Pises to zlozito a zle je to...
Viac z rubriky
Pridať komentár



