PHP tipovi podataka
Ovde ćemo se upoznati sa tipovima podataka koje možemo koristiti u PHP-u. Najpre ćemo se upoznati sa četiri osnovna tipa, a onda ćemo ukratko opisati i dva kompleksna i dva specijalna tipa podataka.
Osnovni tipovi
Osnovni tipovi podataka su:
- integer - celi brojevi
- float - brojevi u pokretnom zarezu (brojevi sa decimalama, racionlni brojevi)
- boolean - logičke vrednosti
- string - tekstualne vrednosti
Celi brojevi
Celi brojevi mogu biti pozitivni ili negativni. Takođe mogu biti u dekadnom, oktalnom, heksadekadnom ili binarnom sistemu. Sistem brojeva zavisi od prefiksa broja:
- 0 (nula) - ako broj počinje nulom, onda je u oktalnom sistemu
- 0x (nula-iks) - za broj u heksadekadnom sistemu
- 0b (nula-b) - za broj u binarnom sistemu
Primer
$x = 8980; // pozitivan broj
$x = -129; // negativan
$x = 02266; // oktalni broj
$x = 0x3F; // heksadekadni broj
$x = 0b110010111; // binarni broj
Celi brojevi su ograničeni. Na 32-bitnim platformama i na Windows serveru, maksimalni celi broj je nešto preko 2.14 milijardi. Ako se maksimum prekorači, PHP će broj automatski konvertovati u float. Drugi programski jezici razlikuju označene i neoznačene brojeve (gde postoje samo pozitivni). U PHP-u su celi brojevi uvek označeni, što znači da je rang broja od -2.14 milijarde do +2.14 milijarde.
Veličina integer tipa se nalazi u predefinisanoj konstanti PHP_INT_SIZE, a maksimalan integer broj u konstanti PHP_INT_MAX.
Brojevi u pokretnom zarezu
Ovo su brojevi sa decimalama. U memoriji se beleže kao brojevi u pokretnom zarezu. Broj preciznih cifara varira od platforme do platforme, mada bismo uvek trebali da možemo da računamo na bar 14 preciznih cifara. Decimalni znak je uvek tačka.
Primer
$a = 3.14; // broj u fiksnoj notaciji
$a = 2.3e5; // broj u pokretnom zarezu
$a = 4.3E-2; // broj u pokretnom zarezu
Logičke vrednosti
Postoje samo dve logičke vrednosti: true i false. Nebitno je da li ih pišemo velikim ili malim slovima.
Primer
$b = false; // broj u fiksnoj notaciji
$b = 0; // tumači se kao false
$b = 0.0; // tumači se kao false
$b = ""; // tumači se kao false
$b = "0"; // tumači se kao false
Stringovi
Stringovi su tekstualne vrednosti. Mogu biti navedeni na više načina, a mi ćemo ovde obraditi dva osnovna.
Prvi i najprostiji način je navođenje teksta unutar apostrofa. Unutar apostrofa možemo zadati bilo koji znak, s tim što za apostrof moramo da navedemo escape sekvencu, tj. da ga navedemo kao \'.
Drugi način je navođenje teksta unutar navodnika. Ovako navedeni stringovi su mnogo moćniji. Kao prvo prepoznaju veći broj specijalnih znakova, a osim toga vrše parsiranje promenljivih (za navedene promenljive ispisuju njihovu vrednost).
Primer
$t = 'Ovo je običan tekst s\' apostrofom.';
// TEKST: Ovo je običan tekst s' apostrofom.
$t = "Ovde možemo zadati i \nNOVI RED";
// TEKST: Ovde možemo zadati i
// NOVI RED
$prom = 123;
$t = "Vrednost promenljive \$prom je {$prom}.";
// TEKST: Vrednost promenljive $prom je 123.
$t = "I sam tekst može biti
zadat u više redova";
Kompleksni i specijalni tipovi
U kompleksne tipove spadaju nizovi (Array) i objekti (Object).
Nizovi su strukture podataka koje pod jednom "promenljivom" sadrže više vrednosti. Mogu biti numerisani i asocijativni. Numerisani nizovi pamte vrednosti pod rednim brojevima, dok asocijativni beleže podatke po sistemu ključ-vrednost. Nizovi su veoma važni u programiranju, pa ćemo se njima mnogo više posvetiti kasnije.
Objekat je "konglomerat" promenljivih (svojstva) i funkcija (metodi). PHP nam omogućava da programiramo na klasičan imperativan način, ali i objektno-orijentisano. U tom slučaju nam tip objekta postaje značajan.
Specijalan tip null ima samo jednu moguću vrednost i to je NULL (velika i mala slova nisu bitna). Ovu vrednost imaju "prazne", odnosno nedefinisane promenljive. Svaka promenljiva kojoj još nije dodeljena vrednost, ako pokušamo da je upotrebimo, imaće vrednost null.
Primer
$x = null; // eksplicitna dodela
unset($y); // unsetovanje promenljive
Resursi su još jedan specijalan tip. Ovaj tip imaju promenljive koje služe kao "handleri", odnosno veza ka nekom spoljnom resursu (npr. konekcija sa bazom podataka, promenljiva preko koje smo otvorili fajl i sl.)
- PHP.net, Types - Introduction