Kurs: - PHP programiranje
Modul: Osnove PHP programskog jezika 1
Autor:
Naziv jedinice: Rad sa podacima
Materijali vezani uz ovu lekciju:
-
Test rad sa podacima -
Rad sa podacima (PDF dokument)
Tipovi podataka
Promenljive u PHP-u mogu da sadrže jednu od sledećih tipova vrednosti:
- Celobrojna vrednost - celi brojevi bez decimala
- Realni brojevi - brojevi u pokretnom zarezu
- String - tekstualne ili numeričke vrednosti, uvek se nalaze unutar dvostrukih navodnika
- Boolean - logičke vrednosti, tačno i netačno (true ili false)
Tip podataka Boolean predstavlja dva moguća stanja - tačno i netačno. Logičke vrednosti se uglavnom koriste za poređenje uslova. U PHP-u netačna vrednost odgovara jednoj od sledećih vrednosti: celobrojna 0, realna 0.0, prazan string, karakter '0' i konstanta NULL. Svaka druga vrednost se smatra za tačnu (true).
U drugim programskim jezicima neophodno da se promenljiva deklariše pre nego što joj se dodeli vrednost. U PHP-u je dovoljno samo dodeliti vrednost promenljivoj. Pre samog smeštanja vrednosti u memoriju, PHP sam određuje tip vrednosti i snima je u odgovarajućem formatu. Ukoliko je potrebno, PHP automatski i konvertuje jedan tip podataka u drugi. Na primer:
$prviBroj = 1; // čuva se kao celobrojna vrednost
$drugiBroj = 1.1; // čuva se kao realan broja
$suma = $prviBroj + $drugiBroj;
U trećoj naredbi, sabiraju se dve vrednosti različitog tipa. Pre samog sabiranja, PHP konvertuje celobrojnu vrednost u realnu, kako bi sabiranje bilo moguće.
Rad sa brojevima
Nad brojčanim vrednostima (float i integer) moguće je obavljati različite operacije u PHP-u.
Matematičke operacije
Matematičke operacije u PHP-u se izvode pomoću matematičkih operatora. Osnovni operatori u PHP-u su:
+ - sabiranje
- - oduzimanje
* - množenje
/ - deljenje
% - moduo (ostatak pri deljenju)
Prilikom izvođenja aritmetičkih operacija treba voditi računa o redosledu njihovog izvršavanja. Matematičke operacije u PHP-u imaju isti prioritet izvršavanja kao i u matematici. Množenje i deljenje imaju prednost nad sabiranjem i oduzimanjem. Redosled izvršavanja operacija može da se promeni upotrebom zagrada.
Kada pokušate da primenite neki od navedenih operatora na promenljive, rezultat operacije će zavisiti od tipa podatka koji je smešten u promenljivima. Na primer, nakon izvršavanja sledećih naredbi:
$broj1 = 1;
$broj2 = 2;
$zbir = $broj1 + $broj2;
promenljiva zbir će sadržati vrednost 3. Promenljive $broj1 i $broj2 su definisane kao brojčane promenljive, pa je rezultat njihovog sabiranja zbir brojeva koje sadrže. Međutim, situacija je drugačija ako jednu od promenljivih kreirate kao string promenljivu. Na primer, nakon izvršavanja naredbi:
$broj1 = "1";
$broj2 = 2;
$zbir = $broj1 + $broj2;
promenljiva $broj1 je kreirana kao string promenljiva. Pre sabiranja, PHP će automatski konvertovati tekstualnu vrednost u broj. U ovom slučaju vrednost "1" će biti konvertovana u broj 1, pa će rezultat sabiranja opet biti 3, kao i u prethodnom slučaju. Međutim, u sledećim naredbama:
$broj1 = "x";
$broj2 = 2;
$zbir = $broj1 + $broj2;
obzirom da vrednost prve promenljive nije broj, PHP će promenljivu $broj1 da konvertuje u broj 0, pa će vrednost promenljive $zbir biti 2. U većini slučajeva, PHP će konvertovati string vrednost u neki neodgovarajući broj. Pogledajte sledeći primer:
$broj1 = "2,000";
$broj2 = 2;
$zbir = $broj1 + $broj2;
Vrednost prve promenljive bi trebala da bude 2000, barem je tako ljudi razumeju, ali PHP zarez doživljava kao kraj broja, pa će promenljiva $broj1 biti konvertovana u broj 2, a rezultat sabiranja će biti broj 4. Zbog toga se ne treba oslanjati na automatsko konvertovanje, nego treba voditi računa da je svakoj promenljivoj dodeljena prava vrednost prilikom kreiranja, kako bi mogle da se izvrše sve operacije nad njom.
Pored osnovnih matematičkih operatora, PHP obezbeđuje i operatore povećanja i smanjenja vrednosti.
Sem operatora, za rad sa brojevima moguće je koristiti i ugrađene funkcije PHP-a, kao što je funkcija sqrt() za izračunavanje kvadratnog korena nekog broja, funkcija abs() za izračunavanje apsolutne vrednosti broja, funkcija ceil() koja zaokružuje broj na prvi veći ceo broj, funkcija floor() koja zaokružuje broj na prvi manji ceo, funkcije max() i min() koje izračunavaju maksimum i minimum i druge.
Formatiranje različitih prikaza brojeva
Često je potrebno neke brojčane vrednosti prikazati u određenom formatu. Na primer, ukoliko te brojčane vrednosti predstavljaju novčane iznose, tada je potrebno da budu prikazane sa dva decimalna mesta i da hiljade budu razdvojene zarezom.
Da biste prikazali neki broj u određenom formatu, koristite funkciju
number_format(broj,brojDecimala,"decSeparator","hiljSeparator")
Argumenti ove funkcije su redom:
- broj - broj koji se formatira. Ovaj argument je obavezan.
- brojDecimala - broj decimalnih mesta. Ukoliko se izostavi podrazumeva se da je broj decimalnih mesta 0. Mora da se navede ukoliko se koriste argumenti decSeparator i hiljSeparator.
- decSeparator - karakter koji se koristi za odvajanje decimalnog dela broja. Podrazumevani separator je tačka.
- hiljSeparator - karakter koji se koristi za odvajanje hiljada. Podrazumevani separator je zarez.
Nakon formatiranja, broj se konvertuje u string. Zbog toga je nephodno sve aritmetičke operacije nad brojem izvršiti pre njegovog formatiranja.
Za komplikovanija formatiranja brojeva moguće je koristiti funkcije printf() i sprintf(). Funkcija printf() samo prikazuje broj u određenom formatu. Funkcija sprintf() formatira broj i smešta ga u promenljivu. Ove funkcije se koriste i za formatiranje string vrednosti.
Datum i vreme
Datum i vreme su veoma važni elementi u razvoju web strana i aplikacija. PHP omogućava da sa ovim podacima radite drugačije nego sa običnim stringovima. Kompjuter čuva datum i vreme u formatu koji se naziva timestamp. Ovaj format iskazuje određeni datum i vreme preko sekundi. Obzirom da je takav način prikazivanja vremena nerazumljiv za običnog korisnika, PHP ga konvertuje u neki od oblika koji ljudi koriste.
Neke od funkcija PHP-a za rad sa vremenom i datumom su:
- date(format) - vraća trenutno vreme, formatirano prema instrukcijama u argumentu format
- checkdate(mesec, dan, godina) - proverava da li je datum validan, tj. da li su vrednosti navedene za meses, dan i godinu u odgovarajućim rasponima
- time() - vraća trenutno vreme, iskazano u sekundama od 1. januara 1970.
U tabeli su navedeni validni formati koje možete da koristite sa funkcijom date():
Kod koji sledi prikazuje trenutno vreme i datum u okviru web strane:
<?php echo "<span style='font:10pt arial'>Danasnji datum je: date('d-n-Y')</span>"; echo "<br/>"; echo "<span style='font:10pt arial'>Trenutno vreme je: date('g:i:s a')</span>"; ?> |