12.01.2015 Views

Web Tehnologije PHP & MySQL - ETF Podgorica

Web Tehnologije PHP & MySQL - ETF Podgorica

Web Tehnologije PHP & MySQL - ETF Podgorica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Web</strong> <strong>Tehnologije</strong><br />

<strong>PHP</strong> & <strong>MySQL</strong><br />

V Nedjelja<br />

<strong>PHP</strong> – Uslovne naredbe, Petlje, Nizovi<br />

Prihvatanje promjrnljivih iz HTML formi (ponavljanje)


KONSTANTE<br />

• <strong>PHP</strong> ima nekoliko već definisanih konstanti i dozvoljava<br />

korisnicima da zadaju dodatne.<br />

• Da biste zadali konstantu, možete da koristite funkciju<br />

define().<br />

• <strong>PHP</strong> konstante nijesu makroi u stilu jezika C pa zato<br />

moraju biti skalarne vrijednosti.<br />


OPERATORI I PRIORITET OPERATORA<br />

• Jezik <strong>PHP</strong> sadrži skup operatora koji su vrlo slični onima iz jezika<br />

C/C++.<br />

• Ternarni operator poređenja iz jezika C, koji se označava sa ,<br />

postoji i u jeziku <strong>PHP</strong>.<br />

• Iskaz $aVrijednost=(izraz1) (izraz2) : (izraz3) dodjeljuje vrijednost<br />

izraz2 promenljivoj $aVrijednost ako je izraz1 tačan.<br />

• Izvršni operator označava se apostrofom (`), slično kao u drugim<br />

programskim jezicima. Iskazi smješteni između apostrofa izvršavaju<br />

se na serveru i njihov rezultat može biti pridružen promenljivoj.<br />

• <strong>PHP</strong> sadrži i operator za kontrolu grešaka, @.<br />

• Kada ovaj operator prethodi <strong>PHP</strong> iskazu, sprečava se generisanje<br />

svih poruka o greškama.


Primjeri nekih operatora<br />


Kontrolne strukture:if,if-else i switch<br />

• Upotreba if iskaza je jednaka onoj u programskom jeziku C.<br />

<br />

• If iskazi se mogu kombinovati sa else blokom koji će se izvršiti<br />

ako if uslov nije ispunjen.<br />


Kontrolne strukture:if,if-else i switch<br />

• U nekim slučajevima potrebno je kombinovati nekoliko if iskaza. To<br />

se postiže upotrebom naredbe else if:<br />

<br />

• Blok else if moguće je pisati i spojeno s elseif kao jednu naredbu.<br />


Kontrolne strukture:if,if-else i switch<br />

• U nekim slučajevima bolje je koristiti switch naredbu. Njena sintaksa je<br />

ista kao u programskom jeziku C. Na primjer:<br />


Upoređivanje vrijednosti<br />

• Prilikom upoređivanja vrijednosti promjenljivih važno je podatke<br />

uspoređivati s oznakom dvostruke jednakosti (==).<br />

• Ova oznaka se koristi za poređenje vrijednosti i razlikuje se od<br />

oznake jednakosti (=) koja se koristi za pridruživanje vrijednosti.<br />

<br />

<br />

• Prilikom uspoređivanja se mogu koristiti i operatori „i“ (&&) i „ili“ (||).<br />

Na primjer:


Petlje (while, do ... while i for)<br />

• While, do... while i for petlje imaju jednake sintakse kao i u<br />

programskom jeziku C. Na primjer:<br />

<br />

• Prilikom korištenja petlji mogu se koristiti naredbe break i continue.


Nizovi, inicijalizacija<br />

• Nizovi su vrlo važna vrsta podataka u programskom jeziku <strong>PHP</strong>.<br />

Osnovni razlog je što se većina podataka smješta u nizove.<br />

• Prilikom dohvata podataka iz baze podataka rezultat se smješta<br />

takođe u niz. Upravo iz tog razloga <strong>PHP</strong> ima vrlo razrađene funkcije<br />

za rad sa nizovima.<br />

• Za inicijalizaciju niza može se koristiti funkcija array(). Primjer<br />

inicijalizacije niza:<br />


• Za dohvaćanje vrijednosti podatka u nizu potrebno je u uglastoj<br />

zagradi nakon naziva promjenljive napisati redni broj podatka koji se<br />

želi dohvatiti.<br />

• Prvi podatak ima redni broj nula, drugi ima redni broj jedan i tako<br />

dalje. Ispisivanje informacije o trećem podatku u nizovima prikazano<br />

je u primjeru:<br />

<br />

• Izvršavanjem programa ispisuju se vrijednosti:<br />

40000Niksic<br />

• Osim putem funkcije array() vrijednosti niza je moguće<br />

inicijalizovati i direktnim upisivanjem na odgovarajuću lokaciju. Na<br />

primjer:<br />


• U gornjem primjeru promjenljiva $noviNiz prije nije bila korištena.<br />

• <strong>PHP</strong> promjenljivu $noviNiz automatski pretvara u tip podataka niz<br />

i na četvrto mjesto upisuje vrijednost 20000.<br />

• Ako je podatak potrebno samo dodati u polje, a nije važno na koje<br />

mjesto tada je potrebno upisati samo uglaste zagrade bez<br />

vrijednosti polja u koje se upisuje. Na primjer:<br />

<br />

• <strong>PHP</strong> će sam odrediti koja je zadnja upisana vrijednost u niz i dodaće<br />

novi podatak na kraj niza.


Ispisivanje vrijednosti niza<br />

• Vrijednosti u nizu mogu se ispisati upotrebom funkcija print_r()<br />

ili var_dump().<br />

• Ove funkcije mogu ispisati cijelu strukturu niza u čitljivom obliku.<br />

• Funkcija var_dump() je puno bolja kada je potrebno tačno vidjeti i<br />

vrste podataka koji susmješteni, kao i broj podataka koji su<br />

smješteni.<br />

• Funkcija print_r() za razliku samo ispisuje vrijednosti niza.<br />

• U slučaju da se ispis želi prikazati na web stranici dobro je ispis<br />

uklopiti u HTML oznake i kako bi se ispisale onako<br />

kako su zamišljene. Primjer programa:<br />


• Izvršavanjem programa ispisuju se vrijednosti:<br />

array(4) {<br />

[0]=><br />

string(9) "Podgotica"<br />

[1]=><br />

string(3) "Bar"<br />

[2]=><br />

string(6) "Niksic"<br />

[3]=><br />

string(6) "Berane"<br />

}<br />

Array<br />

(<br />

[0] => <strong>Podgorica</strong><br />

[1] => Bar<br />

[2] => Niksic<br />

[3] => Berane


• Nizovi (engl. arrays) ponašaju se u jeziku <strong>PHP</strong> kao indeksirani<br />

nizovi (vektori) i kao heš-tabele (asocijativni nizovi).<br />

• Karakteristika asocijativnih nizova je da se podatak ne smješta na<br />

neko mjesto koje je označeno brojem već je označeno nekim<br />

nazivom.<br />

• Upotreba takvih nizova je znatno jednostavnija budući da je lakše<br />

pamtiti pojmove nego brojeve.<br />

• Na taj način moguće je povezati recimo nazive gradova s njihovim<br />

poštanskim brojevima.<br />

• Kod asocijativnog niza potrebno je:<br />

prvo navesti ime niza,<br />

zatim oznaku =><br />

i na kraju vrijednost niza.<br />

• Primjer definisanja asocijativnog niza dat je u programu:<br />

20000,<br />

“Bar” => 30000,<br />

“Niksic” => 40000<br />

);<br />

>


• Pored funkcije array() asocijativne nizove moguće je i direktno<br />

definisati. Na primjer:<br />

<br />

• Asocijativni nizovi mogu biti i samo vrijednosti pa je tako moguće<br />

definisati niz i na sledeći način:<br />

“<strong>Podgorica</strong>”,<br />

30000 => “Bar”,<br />

40000 => “Niksic”<br />

);<br />

>


Podaci u nizu<br />

• Sadržaj podatka u nizu može se promijeniti jednostavnim upisivanjem nove<br />

vrijednosti na mjesto stare.<br />

• Podaci u nizu se mogu brisati upotrebom funkcije unset(). Na primjer:<br />


• Nizovi mogu biti i višedimenzionalni. Odnosno, neki od elemenata<br />

niza mogu takodje biti nizovi. Na primjer:<br />

<br />

• Zbog svih ovih karakteristika vrlo često u jeziku <strong>PHP</strong> nije moguće<br />

podacima pristupati koristeći klasičnu for petlju.<br />

• Umjesto nje dobro je koristiti foreach petlju. Ona prolazi kroz sve<br />

elemente niza pri čemu u svakom prolazu promjenljiva foreach<br />

petlje poprima vrijednost sljedećeg elementa u nizu. Na primjer:<br />


• Izvršavanjem programa ispisuju se sledeće vrijednosti:<br />

Podatak: string(6) "<strong>Podgorica</strong>"<br />

Podatak: int(20000)<br />

Podatak: array(3) {<br />

[0]=><br />

string(7) "Masline"<br />

[1]=><br />

string(7) "Zabjelo"<br />

[2]=><br />

string(6) "Centar"<br />

}<br />

• Osim samog podatka moguće je i dohvatiti njegov indeks:<br />

$podatak){<br />

echo “Podatak: $key “;<br />

var_dump($podatak);<br />

}<br />

>


Osnovne funkcije za rad sa nizovima<br />

• Osim već navedenih var_dump, print_r i foreach postoji<br />

nekoliko najčešćih funkcija za rad sa nizovima. Iako ovo nijesu sve<br />

funkcije ove se najčešće koriste:<br />

$brojac = count($niz) – ispisuje broj elemenata u polju.<br />


• $niz = explode(' ', $tekst) – vrijednost promjenljive<br />

$tekst pretvara u niz pri čemu kao znak za odvajanje koristi ' '<br />

(razmak).<br />

Ovo [1] => je [2] => primjer }<br />

><br />

• $tekst = implode(' ', $polje) – suprotno od funkcije<br />

explode() spaja elemente niza u jedan niz znakova koristeći<br />

zadati znak za odvajanje pojedinih elemenata.<br />


• $vrijednost = max($niz) –vraća najveću vrijednost u nizu.<br />

<br />

• $vrijednost = min($niz) –vraća najmanju vrijednost u nizu.<br />

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!