Doseg Varijabli, Tipovi Podataka, Konverzija

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

DOSEG (ENGL.

SCOPE) VARIJABLE

Doseg varijable je određen kontekstom u kojem je deklarirana i načinom deklariranja


varijable. Varijable prema dosegu možemo podijeliti na lokalne, globalne, statične i
superglobal varijable.

3.3.1. Lokalne varijable

Lokalne varijable su varijable deklarirane u funkciji. Izlaskom iz funkcije lokalne


varijable se uništavaju.

3.3.2. Globalne varijable

Globalne varijable su dostupne u svim dijelovima programa. One se deklariraju na


osnovnoj razini programskog kôda. U PHP- u unutar funkcija nije moguće direktno pristupati
globalnim varijablama već je potrebno koristiti ključnu riječ GLOBAL. Bez ključne riječi
GLOBAL unutar funkcija se referencira lokalna varijabla.
Primjer 1.
$var=10;
function inkrementiraj() {
GLOBAL $var;
$var++;
}
inkrementiraj();
Drugi način pristupanja varijablama iz globalnog dosega je korištenjem specijalnog
superglobal $GLOBALS polja. Prethodni primjer se može zapisati korištenjem $GLOBALS
polja kao:
Primjer 2.
$var=10;
function inkrementiraj() {
$GLOBALS ['var'];
$var++;
}
inkrementiraj();

3.3.3. Statične varijable

Statična varijabla postoji samo unutar funkcija i ne gubi svoju vrijednost kada izvršavanje
programa izađe iz lokalnog dosega funkcije. Vrijednost varijabla ostati će sačuvana i
varijabla se neće uništavati izlaskom iz funkcije. Deklaracija varijable izvršava se samo
prvim pozivanjem funkcije.
Primjer 1.
function inkrementiraj() {
STATIC $broj= 0;
$broj++;
echo $broj;
echo "<br />";
}
inkrementiraj();
inkrementiraj();
inkrementiraj();

Ispis iz programa:
1
2
3

3.3.4. Superglobal varijable

Superglobal varijable su dostupne bilo gdje u skripti. Kako bi se koristile u php.ini


konfiguracijskoj datoteci track_vars mora biti omogućen. Imenovane su velikim slovima i
započinju sa _.
$_SERVER
$_SERVER je asocijativno polje s unaprijed zadanim ključevima polja (eng. key). Ova se
superglobal varijabla koristi kako bi se dohvatili podaci o okruženju u kojem se izvršavaju
PHP skripte.
Ukoliko se žele ispisati svi podaci zapisani u neku superglobal varijablu može se koristiti
sintaksa prikazana u sljedećem primjeru:
foreach ($_SERVER as $varijabla =>
$vrijednost) { echo "$varijabla =>
$vrijednost <br />";
}
Dobiveni rezultati izvršavanja navedene skripte ovisiti će o okruženju u kojem se skripta
izvršava. Unosi u polje superglobal varijable postavljaju se od strane servera, neke
vrijednosti mogu biti nedostupne ili mogu dati vrijednosti koje drugi serveri ne predaju.
Popis vrijednosti koje se mogu dobiti moguće je pogledati na:
http://php.net/manual/en/reserved.variables.server.php.

$_GET
$_GET superglobal varijabla daje asocijativno polje koje sadrži vrijednosti proslijeđene
preko GET metode.
Primjer 1.
URL http://www.mev.hr/index.html?prva=pozdrav&druga=svima
$_GET['prva']="pozdrav";
$_GET['druga']="svima";

$_POST
$_POST superglobal varijabla sadrži vrijednosti proslijeđene preko POST metode
(prilikom predaje HTML formulara). Primjer 1. prikazuje formular s postavljenom POST
metodom dok Primjer 2. prikazuje ispis vrijednosti unesenih u formular, nakon predaje
formulara
Primjer 1.
<form action="obrada_formulara.php"
method="post"> <p>Email adresa:<br />
<input type="text" name="email" size="20"
maxlength="50" value="" />
</p>
<p>Password:<br />
<input type="password" name="lozinka" size="20"
maxlength="15" value="" />
</p>
<p>
<input type="submit" name="predaj" value="predaj!"
/> </p>
</form>

Primjer 2.
echo $_POST['email'];
echo $_POST['lozinka'];
echo $_POST['predaj'];
PHP PODRŽANI TIPOVI PODATAKA

U PHP-u su podržani sljedeći tipovi podataka:

Boolean
True/False.
Bilo koji znak koji nije nula / 0.

Integer
31
Maksimalni podržani integer je 2 s predznakom.

Float
Realan broj čija preciznost ovisi o sustavu na kojem se skripte izvršavaju.

String
Niz znakova gdje je znak isto što i bajt (PHP nema ugrađenu podršku za Unicode)
Određuju se pomoću jednostrukih ili dvostrukih navodnika.
Array (polja)
Polje u PHP u je poredana mapa (eng. ordered map) koja povezuje vrijednosti i
ključeve. Prema vrsti ključa postoje polja koja se zadaju kao:
• Numerički indeks
$polje[1]="PHP";
• Asocijativni indeks
$polje["jezik"]="PHP";

Object
Tip podataka koji sprema podatke i informacije o njihovom procesiranju. U PHP-u
objekti se eksplicitno deklariraju.
NULL
Poseban tip podataka koji može imati samo vrijednost NULL. Kad se varijabla kreira bez
vrijednosti automatski joj se dodjeljuje vrijednost NULL. Varijable se također mogu
isprazniti postavljanjem vrijednosti na NULL.
Resource
Specijalni tip Resource u biti nije stvaran tip podataka. Varijabla koja je tipa resource
referencira funkcije i resurse izvan PHP skripte. Tipičan primjer korištenja resursa je
povezivanje s bazom podataka.
KONVERZIJA TIPOVA PODATAKA

Konverzija tipova podataka omogućuje pretvorbu varijable iz jednog tipa u drugi tip
varijable. Konverzija tipova podataka može biti eksplicitna ili automatska.

3.5.1. Eksplicitna konverzija tipova podataka (eng. Type Casting)

Eksplicitna konverzija eksplicitno navodi u koji tip podataka želimo izvršiti konverziju
preko operatera konverzije.
Operatori
• (array)
• (bool) ili (boolean)
• (int) ili (integer)
• (int64) od PHP 6
• (object)
• (real) ili (double) ili (float)
• (string)
Primjer 1.
$rezultat = (double) 13; // $rezultat =
13.0 $rezultat= (int) 14.8; // $rezultat
= 14 $recenica= „Ovo je rečenica";

echo (int) $recenica; // vraća 0


$rezultat= 1114;
$polje= (array) $rezultat;
echo $polje[0]; /* izlaz 1114 (OPREZ! kad imamo već
postojeće polje ono se briše i ostaje vrijednost samo
na prvom mjestu polja) */

3.5.2. Automatska konverzija tipova podataka (eng. Type Juggling)

PHP ne zahtijeva ni ne podržava eksplicitnu definiciju tipa podataka prilikom


deklariranja varijabli. Tip varijable se određuje iz konteksta u kojem se varijabla koristi.
Ukoliko se varijabli dodijeli vrijednost tipa string ona će postati varijabla istog tipa, ukoliko
joj se dodijeli integer vrijednost i varijabla se mijenja u taj tip podataka.
Slično se događa i prilikom obrade podataka gdje se mogu kombinirati različiti tipovi
podataka koji se procjenjuju ovisno o kontekstu kako je prikazano u sljedećim primjerima
Primjer 1.
<?php
$cijena= 10; // integer
$pdv= "2.50"; // string
$cijena += $pdv; // $cijena = 12.5 float
?>
Primjer 2.
<?php
$cijena= 10; // integer
$pdv= "2.50 kuna"; // string
$cijena += $pdv;
/* $cijena = 12.5 floatvrijedi samo kad je
početak stringa broj! */
?>
Primjer 3.
<?php
$cijena= "1.21e3";
/ string1210 kad ima e u sebi tumači se kao
float $pdv= 0.25; // float
$cijena += ($cijena * $pdv); // $cijena = 1512.5
?>

You might also like