Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

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ál­nom 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äť naspäť Pridať komentár k článku prispieť do diskusie [4]
RSS