Vytlač príspevok
Odporuč príspevok
Bookmark and Share PRIDAŤ NA VYBRALI.SME.SK

PHP Manuál : 2. Polia a premenné podrobnejšie

Pozrime sa na polia a premenné v PHP trošku podrobnejšie.

Navigácia

  1. integer
  2. string
  3. double
  4. pole
  5. pretypovanie premenných
  6. konštanty


INTEGER

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 smičkovej sústave),nečudujte sa ,že jej hodnota bude 511, pretože taká je jej hodnota v desiatkovej sústave.

STRING

String zase používame pre reťazce. Tieto zapisujeme pomocou úvodzoviek " , pre čistý text sa dajú použiť apostrofy '. Ak je potrebné použiť špeciálny znak vo vnútri reťazca , použijeme tzv. escape sekvencie. Tieto sekvencie je možné použiť len v reťazcoch uzavretých v úvodzovkách. Jednotlivé escape sekvencie :

  • spätné lomítko zapíšeme znakom \\
  • tabulátor - \t
  • úvodzovky - \"
  • dolár - \$
Ak je premenná zložená s  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 [ ] .

Príklad 4
<?php

  $a = 0777; // hodnota premennej je 511
  echo "hodnota premennej \$a je $a <br />"; // v reťazci je escape sekvencia, preto sú použité úvodzovky
  echo 'toto je čistý text <br />'; // čistý text môžu uzatvárať apostrofy
 
  $b = "Text";
  echo "$b[0] <br />"; // vypíše T

  $c = 10;
  $sucet = $a + $c;
  echo "Vysledok je $sucet <br />"; //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. Index sa zapisuje na hranatých zátvoriek a môže byť číselného tvaru ,ale aj prezentovaný reťazcom. Jednotlivé prvky poľa môžu byť ľubovoľného typu.

$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. Viacej 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

Príklad 5
<?php

$diagonala = Array(Array(2,4,5),Array(1,0,4),Array(5,4,1));
$vysledok=$diagonala[0][0]+$diagonala[1][1]+$diagonala[2][2];
echo $vysledok;

?>

Veľmi často som zabúdal ,že pole je indexované od nuly! Teraz zabúdam na iné veci ;)
Pri práci s poľom môžme využiť nasledovné funkcie :

Funkcia Popis
Reset()  nastaví index na 1. prvok poľa
Current()   vráti hodnotu prvku poľa
Next()   posunie ukazovateľ a vráti aktuálnu hodnotu prvka poľa
Count()   zistí počet prvkov poľa
Key()   vracia index poľa, na ktorom sa nachádza ukazovateľ
List()   zabezpečí načítanie poľa do premenných

Funkcia List() sa nám z horeuvedených zíde asi najviac. Demonštrujeme si ju na príklade :
Príklad 6
<?php

$den = array("pon","uto","str"); //načítame pole
echo "$den[0] <br />"; //vypíše pon

List($den_1,$den_2,$den_3) = $den;
echo $den_2; // vypíše uto

?>

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() , syntax : SetType($premenna,"typ");
Ak chceme zistiť typ premennej použijeme funkciu :
GetType() , syntax : GetType($premenna);
Môžme 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

Príklad 7
<?php

$a = 10; // integer
$b = 10.5; // double
$vysledok = $a + $b; //double
echo "$vysledok <br />"; //vypise 20.5

SetType($vysledok,"integer"); //pretypovanie na integer
echo "$vysledok <br />"; //vypise 20
$typ = GetType($vysledok); //zisti typ premennej
echo "$typ <br />"; //vypise integer
SetType($vysledok,"double"); //pretypovanie spat na double
echo "$vysledok <br />"; //vypise 20
$typ = GetType($vysledok);
echo "$typ <br />"; //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 , syntax : 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ý.
Príklad : define("dni_v_roku",365,false);
Konštanta dni_v_roku bude mat hodnotu 365 a jej názov bude citlivý na veľkosť písmen.
Narozdiel od premenných pri konštantách nepoužívame prefix $.


Články

Predošlý článok : 1.Základy, Hello world a premenné
Ďalší článok : 3. Výrazy a operátory


Odkazy

Stiahnite si vypracované príklady použité v článku

php | stály odkaz

Komentáre

Pozor, na konci je potreba spočítať neľahkú matematickú úlohu! Inak komentár nevložíme. Pre tých lenivejších je tam tlačidlo kúzlo.



Prevádzkované na CMS TeaGuru spoločnosti Singularity, s.r.o., © 2004-2014