17

radionica: sastavljanje, konfiguracija i instalacija pc ... ovom poglavlju naučit ćete: Što je razvojno okruženje O web-serveru (Apache) O izvršavanju skripti O prikazu u web-pregledniku

  • Upload
    ngonhi

  • View
    217

  • Download
    3

Embed Size (px)

Citation preview

autor:

Ivan Božajić urednica:

Ana Rutar, prof.

naslov:

Uvod u PHP i objektno orijentirano programiranje

stručni recenzent:

Ivan Posinjak

lektorica:

Dijana Stilinović

grafički urednik:

Krešimir Pletikosa, ACE

nakladnik:

Algebra d.o.o., 2011.

za nakladnika:

mr.sc. Mislav Balković

mjesto i godina izdavanja:

Zagreb, 2011

Sva prava pridržana. Niti jedan dio ove knjige ne smije se reproducirati ili prenositi u bilo kojem obliku, niti na koji način. Zabranjeno je svako kopiranje, citiranje te upotreba knjige u

javnim i privatnim edukacijskim organizacijama u svrhu

organiziranih školovanja, a bez pisanog odobrenja nositelja autorskih prava. Copyright © Algebra d.o.o. CIP zapis dostupan u računalnom katalogu Nacionalne i sveučilišne

knjižnice u Zagrebu pod brojem 760483

ISBN 978-953-322-063-5

Sadržaj:

1. Poglavlje: ....... Osnove PHP jezika ............................................................................................. 3 1.1 Uvod .............................................................................................................................. 4 1.2 PHP povijest .................................................................................................................. 4 1.3 Razvojno okruženje ........................................................................................................ 5 1.4 Osnove HTML jezika ...................................................................................................... 6

1.4.1 Prva HTML stranica ................................................................................................... 7 1.4.2 Formatiranje teksta .................................................................................................... 8 1.4.3 Slike i linkovi .............................................................................................................. 9 1.4.4 Liste i tablice ............................................................................................................. 9

1.5 Neka temeljna pravila PHP-a........................................................................................ 10 1.6 Komentiranje kôda ....................................................................................................... 13 1.7 Zadaci za ponavljanje ................................................................................................... 15

2. Poglavlje: ....... Varijable ............................................................................................................ 17 2.1 Uvod u varijable ........................................................................................................... 18 2.2 Osnovni tipovi podataka ............................................................................................... 20

2.2.1 Cjelobrojne vrijednosti ............................................................................................. 20 2.2.2 Brojevi s pokretnim zarezom ................................................................................... 20 2.2.3 Nizovi znakova ........................................................................................................ 20 2.2.4 Logičke vrijednosti ................................................................................................... 21 2.2.5 Polja ........................................................................................................................ 22 2.2.6 Objekti ..................................................................................................................... 22 2.2.7 NULL ....................................................................................................................... 22

2.3 Zadaci za ponavljanje ................................................................................................... 23

3. Poglavlje: ....... Izrazi i operatori ................................................................................................ 25 3.1 Uvod ............................................................................................................................ 26 3.2 Pregled operatora ........................................................................................................ 26

3.2.1 Aritmetički operatori ................................................................................................. 26 3.2.2 Operator za nastavljanje nizova (.) .......................................................................... 27 3.2.3 Operatori automatskog povećavanja i smanjivanja .................................................. 27 3.2.4 Operatori usporedbe................................................................................................ 28 3.2.5 Logički operatori ...................................................................................................... 31 3.2.6 Operatori pretvorbe ................................................................................................. 32 3.2.7 Operator dodjeljivanja vrijednosti ............................................................................. 33 3.2.8 Operatori dodjeljivanja s operacijom ........................................................................ 33

3.3 Zadaci za ponavljanje ................................................................................................... 35

4. Poglavlje: ....... Kontrolne strukture i petlje .............................................................................. 37 4.1 Uvod ............................................................................................................................ 38 4.2 if-else ........................................................................................................................... 38 4.3 switch-case .................................................................................................................. 42 4.4 while ............................................................................................................................. 45 4.5 for ................................................................................................................................ 49 4.6 foreach ......................................................................................................................... 49 4.7 Zadaci za ponavljanje ................................................................................................... 49

5. Poglavlje: ....... Polja................................................................................................................... 51 5.1 Uvod u polja ................................................................................................................. 52 5.2 Vrste polja .................................................................................................................... 52 5.3 Prikaz i ispis elementa polja ......................................................................................... 54

5.3.1 for petlja za ispis elemenata polja ............................................................................ 56 5.3.2 foreach petlja za ispis elemenata polja .................................................................... 57

5.4 Višedimenzionalna polja ............................................................................................... 58 5.5 Sortiranje vrijednosti polja ............................................................................................ 60

5.5.1 sort()........................................................................................................................ 61 5.5.2 rsort() ...................................................................................................................... 61 5.5.3 asort() ...................................................................................................................... 62 5.5.4 arsort() .................................................................................................................... 62 5.5.5 ksort() ...................................................................................................................... 63 5.5.6 krsort() ..................................................................................................................... 63

5.6 Operacije s poljima ....................................................................................................... 64 5.6.1 Prebrojavanje elemenata polja ................................................................................ 64 5.6.2 Prikazivanje zadnjeg elementa polja ........................................................................ 64 5.6.3 Pretraživanje polja ................................................................................................... 65

5.7 Zadaci za ponavljanje ................................................................................................... 66

6. Poglavlje: ....... Funkcije ............................................................................................................. 67 6.1 Uvod u funkcije ............................................................................................................. 68 6.2 Pozivanje funkcije ........................................................................................................ 68 6.3 Definiranje funkcije ....................................................................................................... 70 6.4 Globalne varijable ........................................................................................................ 73 6.5 Statične varijable .......................................................................................................... 73 6.6 Parametri funkcije ........................................................................................................ 74

6.6.1 Predaja parametra putem vrijednosti ....................................................................... 74 6.6.2 Predaja parametra putem reference ........................................................................ 74 6.6.3 Zadani parametri ..................................................................................................... 75 6.6.4 Varijabilni broj parametara ....................................................................................... 76

6.7 Varijabilne funkcije ....................................................................................................... 77 6.8 Zadaci za ponavljanje ................................................................................................... 78

7. Poglavlje: ....... Objekti ............................................................................................................... 79 7.1 Uvod u objektno orijentirano programiranje .................................................................. 80

7.1.1 Klasa ....................................................................................................................... 80 7.1.2 Objekt ...................................................................................................................... 80 7.1.3 Apstrakcija ............................................................................................................... 81 7.1.4 Učahurivanje ........................................................................................................... 81 7.1.5 Nasljeđivanje ........................................................................................................... 81 7.1.6 Polimorfizam ........................................................................................................... 81

7.2 Definiranje klase i izrada objekta .................................................................................. 82 7.2.1 Konstruktor i destruktor ........................................................................................... 83 7.2.2 Nasljeđivanje ........................................................................................................... 84 7.2.3 Sučelje .................................................................................................................... 85 7.2.4 Apstraktne metode .................................................................................................. 86 7.2.5 Vidljivost svojstava i metoda .................................................................................... 86 7.2.6 Ključna riječ static .................................................................................................... 88 7.2.7 Predlošci programskog kôda ................................................................................... 89

8. Poglavlje: ....... Web-forma i obrada podataka .......................................................................... 91 8.1 Uvod ............................................................................................................................ 92 8.2 POST varijabla – web-forma......................................................................................... 92

8.2.1 Obrada podataka ..................................................................................................... 93 8.3 GET varijabla ............................................................................................................... 97 8.4 REQUEST varijabla ...................................................................................................... 98 8.5 Obrada poslanih datoteka ............................................................................................ 98 8.6 Zadaci za ponavljanje ................................................................................................. 100

9. Poglavlje: ....... Rad sa datotekama ......................................................................................... 101 9.1 Uvod .......................................................................................................................... 102 9.2 Čitanje iz datoteke ...................................................................................................... 102 9.3 Zapisivanje u datoteku ............................................................................................... 103 9.4 Korisne funkcije .......................................................................................................... 104

9.4.1 Funkcija is_file ....................................................................................................... 104 9.4.2 Funkcija id_dir ....................................................................................................... 104 9.4.3 Funkcija mkdir ....................................................................................................... 105 9.4.4 Funkcija rmdir ........................................................................................................ 105 9.4.5 Funkcija unset ....................................................................................................... 105

9.5 Zadaci za ponavljanje ................................................................................................. 105

10. Poglavlje: ...... Rješenja zadataka ........................................................................................... 107

U ovom poglavlju naučit ćete:

Što je razvojno okruženje

O web-serveru (Apache)

O izvršavanju skripti

O prikazu u web-pregledniku

Koja su osnovna pravila pisanja kôda

Što je komentiranje kôda

1. Poglavlje: Osnove PHP jezika

Str.4§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

1.1 Uvod

Unutar ovog poglavlja proći ćete kroz skup temeljnih pravila koja upravljaju načinom na koji pišete programski kôd u PHP jeziku. Biti će opisane osnovne web-tehnike, pojmove i naredbe za ugnježđivanje PHP kôda unutar HTML stranice. Saznat ćete na koji način uključiti dodatni PHP kôd te kako ispisati podatke na HTML stranicu. No prije svega, upoznat ćemo se s razvojnim okruženjem u kojem nastaje i u kojem se izvršava PHP kôd.

1.2 PHP povijest

PHP je nasljednik jednog starijeg projekta kojeg je razvio Rasmus Lerdorf 1995., a zvao se PHP/FI. U početku je PHP jezik bio zamišljen kao skup Perl skripti koju je Rasmus napravio kako bi mogao pratiti posjete korisnika njegovom online životopisu. Taj skup skripti nazvao je „Personal Home Page Tool“. No kako su rasli zahtjevi za funkcionalnošću, napisao je mnogo veću C implementaciju koja je imala mogućnosti komuniciranja s bazom podataka i omogućavala korisnicima razvijanje jednostavne dinamičke web-stranice ili aplikacije. Odlučio je objaviti svoj kôd kako bi ga svi mogli koristiti, ali i kako bi mu pomogli pri ispravljanju grešaka. PHP/FI je akronim koji označava Personal Home Page/Forms Interpreter, a uključuje neke osnovne funkcionalnosti koje su i danas sastavni dio PHP-a. Druga verzija PHP/FI-a pojavila se 1997. i već je tada imala preko nekoliko tisuća sljedbenika u cijelom svijetu. Više od 50 000 domena prijavilo je da imaju instaliranu ovu inačicu, ali iako je nekoliko ljudi sudjelovalo u razvoju kôda, zapravo se sve svelo na jedan veliki projekt i jednog čovjeka. PHP 3 je prva verzija PHP-a kakvog danas poznajemo. Kreirala su ga dvojica programera, Andi Gutmans i Zeev Suraski, nakon što su shvatili da PHP/FI 2.0 nije dovoljno moćan za njihov projekt na sveučilištu. Napisali su ga potpuno iz početka i objavili kao nasljednika PHP/FI-a 2.0. Njegova najjača osobina je mogućnost korištenja ekstenzija za proširenje osnovne funkcionalnosti. Ovo je omogućilo priključenje novih programera na razvoju ekstenzija. Tako programeri nisu morali pisati cijeli kôd ispočetka, već samo ekstenziju za ono što im treba, kao što je recimo spajanje na bazu ili nekakav API za komunikaciju. Jednako tako, velika novost u PHP-u 3.0 bilo je uvođenje objektno orijentirane sintakse. Odmah je postao popularan te je zabilježeno da je do kraja 1998. bio instaliran na 10% svih svjetskih web-poslužitelja. Kratko nakon izlaska PHP-a 3.0., Andi Gutmans i Zeev Suraski počeli su raditi na verziji 4.0. Zapravo su ponovno prepisali jezgru sustava kako bi omogućili još veću povezanost s novim ekstenzijama te kako bi dobili još bolje performanse. Tu novu jezgru nazvali su „Zend Engine“ (izvedenica njihovih imena Zeev i Andi) i predstavili su je sredinom 1999. Zadovoljili su sve svoje ciljeve proširivosti i performansa te učinili ovu platformu još popularnijom i privukli još veći broj programera koji rade na unaprjeđenju kôda.

Str.5§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

PHP 5 je predstavljen sredinom 2004. Njegova glavna novost je nova jezgra „Zend Engine 2.0“ koja objedinjuje novi modul za objektno orijentirano programiranje te još nekoliko novih funkcionalnosti.

1.3 Razvojno okruženje

Kod kreiranja obične HTML stranice dovoljna vam je aplikacija za kreiranje HTML stranica (npr. Dreamweaver) i web-preglednik. Kada je stranica gotova, pospremate je negdje na tvrdi disk vašeg računala u obliku .html ili .htm datoteke. Putem web-preglednika pristupate toj datoteci te na taj način možete vidjeti rezultat vašeg rada. Kod izrade web-aplikacija i stranica u PHP-u situacija je drugačija. Osim aplikacije za pisanje kôda i preglednika, potreban nam je i web-server. Web-server je aplikacija koja je instalirana na poslužitelju na kojem imamo smještenu našu stranicu. Služi za izvođenje programskog kôda i prikazivanje rezultata korisniku u web-pregledniku. Ovisno o programeru, web-server možete i instalirati na osobno računalo. Običaj je da sebi na vlastitom računalu pripremite okruženje u kojem se mogu izvoditi vaše PHP skripte kako bi ih mogli testirati prije nego ih postavite na javni poslužitelj. Najpopularniji web-server danas je Apache. PHP kôd pohranjujemo u datoteke s ekstenzijom .php i pomoću FTP programa smještamo ih na naš poslužitelj. Ako radite na osobnom računalu s instaliranim i podešenim web-serverom, tada ih spremate u direktoriji koji je definiran u konfiguraciji web-poslužitelja. Naime, web-server će moći izvršiti samo datoteke koje se nalaze u tom direktoriju. Putem web-preglednika pristupate tom direktoriju. Kada korisnik zatraži da mu se prikaže neka PHP skripta u web-pregledniku, preglednik šalje naredbu web-serveru. Web-server dohvaća traženu PHP skriptu i izvršava je, a korisniku prikazuje samo njezin rezultat u obliku HTML stranice. Rezultat izvršavanja PHP skripte uvijek je u tekstualnom obliku. Ako rezultat kombinira i HTML elemente, tada će ih preglednik prevesti i prikazati. Pogledajmo jedan primjer koji nećemo detaljno analizirati već će nam služiti za prikaz opisanog.

1. $polje = array(1 => 'Tesla', 2 => 'Edison', 3 =>

'Bell');

2.

3. echo '<table border="1" cellpadding="5">';

4.

5. foreach($polje as $key => $val)

6. {

7. echo '

8. <tr>

9. <td>'.$key.'</td>

10. <td>'.$val.'</td>

11. </tr>';

12. }

13.

14. echo '</table>';

Str.6§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

Kada web-server izvrši ovaj kôd, rezultat će biti sljedeći:

1. <table border="1" cellpadding="5">

2. <tr>

3. <td>1</td>

4. <td>Tesla</td>

5. </tr>

6. <tr>

7. <td>2</td>

8. <td>Edison</td>

9. </tr>

10. <tr>

11. <td>3</td>

12. <td>Bell</td>

13. </tr>

14. </table>

Preglednik će ovaj kôd prikazat će na sljedeći način:

1.4 Osnove HTML jezika

HTML (engl. Hyper Text Markup Language) je jezik kojeg koriste preglednici kako bi odredili na koji način prikazati web-stranicu. Ovaj je jezik osnova dizajna web-stranica. Kombinacija je običnog teksta i specijalnih markera (engl. tags). Ti markeri govore web-pregledniku kako prikazati sadržaj stranice. Markeri se koriste svaki put kada se želi formatirati tekst, umetnuti slika ili prikazati tablica s podacima. U prethodnom ste dijelu naučili da je PHP usko vezan za HTML zato što se svaki rezultat izvršavanja PHP kôda tumači kao HTML i kao takav prikazuje u web-pregledniku. Ako želimo rezultat izvršavanja PHP kôda ljepše prikazati, umetnuti sliku ili stvoriti tablicu s podacima, potreban nam je HTML jezik. U ovom djelu naučit ćemo osnove HTML-a koje ćemo kasnije primijeniti na primjerima PHP-a. Neće se ići u veliku dubinu te ako želite znati više, možete to učiniti na posebnom seminaru. Ovdje će biti riječ samo o osnovama kako bi lakše mogli pratiti daljne primjere.

Str.7§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

1.4.1 Prva HTML stranica

U uvodu ovog dijela spomenuli smo markere. No što je zapravo HTML marker? Pogledajte na jednostavnom primjeru. Imate običnu rečenicu i želite je prikazati masno otisnutim slovima. Koristeći HTML markere, to bi napravili na sljedeći način:

1. <b>Nasa prva HTML stranica</b>

U potonjem primjeru <b> i </b> su markeri. Oni zapravo govore

pregledniku da tekst između njih učini masnije otisnutim. Ako želimo pregledniku reći da naš tekst ispiše nagnutim slovom, tada koristimo

markere <i> i </i>. Ako želimo tekst prikazati podvučen, koristimo

markere <u> i </u>. Većina HTML markera ima početni i završni marker

koji govore pregledniku da nešto učini sa sadržajem između njih. No postoje i markeri koji nemaju svoj komplementarni par za završetak. Te ćete markere upoznati u nastavku. Sad kada ste se upoznali s tim što su HTML markeri, možemo napisati primjer jednostavne HTML stranice na kojem ćete obraditi osnove i upoznati se s novim markerima.

1. <html>

2. <head><title>Naslov stranice</title></head>

3. <body>

4. Dobrodosli na moju prvu HTML stranicu

5. </body>

6. </html>

Navedeni kôd spremite u datoteku prva.htm ili prva.html i otvorite je u pregledniku. Prikazat će vam se poruka dobrodošlice koju ste napisali u liniji broj 4. Ono što moramo pojasniti su novi markeri. Krenimo redom: <html></html> – svi HTML dokumenti započinju i završavaju ovim markerima. Oni web-pregledniku govore da je riječ o HTML dokumentu; <head></head> – između ovih markera nalaze se tzv. metainformacije o stranici kao što su naslov, ključne riječi i neke opisne informacije o stranici; <body></body> – ovo je tijelo dokumenta i onaj dio stranice koji se prikazuje korisniku smješta se između ovih markera. Naša prva stranica nije ništa spektakularno, ali dovoljno vas dobro uvodi u HTML svijet. Dodajte sada vašoj stranici boju podloge. Potrebno je izmijeniti liniju broj 3 da izgleda ovako:

3. <body bgcolor=“#FF0000“>

Markeru ste dodali atribut bgcolor koji ima svoju vrijednost. U ovom slučaju ima vrijednost šifre crvene boje. Dakle, ovdje vidite da neki markeri mogu biti prošireni određenim atributima. Nećemo se upuštati u detaljno objašnjenje kakvi sve atributu postoje, već ćete neke upoznati u hodu.

Str.8§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

Ako želite vašoj stranici definirati da ima sliku za pozadinu, tada naša linija broj 3 treba izgledati ovako:

3. <body background="slika.gif">

1.4.2 Formatiranje teksta

S formatiranjem teksta susreli ste se u uvodu ovog dijela kada je bila riječ o tome što su markeri. Uočili ste kako tekst možete podebljati korištenjem

<b></b> markera. Jednako ga tako možete nakriviti korištenjem <i></i>

markera i podcrtati <u></u> markerima. Ove markere ne morate koristiti

odvojeno, već ih možete koristiti zajedno kako to prikazuje sljedeći primjer:

1. <b><i>ovo je podebljano nakrivljeni tekst</i></b>

Paragraf teksta u HTML-u označavamo pomoću <p></p> markera na sljedeći način:

1. <p>Ovo je prvi paragraf</p>

2. <p>Ovo je drugi paragraf</p>

Markerima za paragraf može se dodijeliti atribut align koji označava kako je poravnat tekst između markera. Vrijednost tog atributa može biti: left, center i right.

1. <p align=“center“>tekst je poravnat na sredinu</p>

Ako želite promijeniti boju, veličinu ili stil slova na stranici, HTML vam daje

<font></font> markere sa svojim atributima:

1. <font face=“Arial“ color=“#FF0000“ size=“1“>

2. Tekst za prikaz

3. </font>

Atribut face sadržava naziv stila slova. Može se navesti više naziva odvojenih zarezom, a bit će prikazan prvi koji je dostupan na sustavu na kojem učitavamo i prikazujemo stranicu. Atribut color definira koje će boje biti tekst između markera. U našem primjeru ima vrijednost šifre crvene boje. Atribut size definira veličinu teksta. Vrijednost može biti do 1 do 7. Markeri se mogu kombinirati. To bi izgledalo ovako:

1. <p align=“center“>

2. <font face=“Arial“ size=“2“><u>Dobrodosli!</u></font>

3. </p>

Str.9§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

1.4.3 Slike i linkovi

Kako biste umetnuli sliku na vašoj stranici, koristit ćete marker <img>. Ovo

je jedan od onih markera koji nema svoj par kojim završava. Da biste umetnuli sliku na stranicu, dovoljno je napisati sljedeći kôd:

1. <img src=“slika.jpg“ />

Atribut src sadržava vrijednost putanje (URL) do slike. Osim slike koju umećemo, možemo definirati još dva atributa koji nam govore kolika će biti širina i visina slike. To ćete napraviti pomoću atributa width i atributa height.

1. <img src=“slika.jpg“ width=“100“ height=“150“ />

Slici se može dodati i granica korištenjem atributa border.

1. <img src=“slika.jpg“ width=“100“ height=“150“ border=“2“

/>

Jednako tako, HTML vam omogućuje kreiranje hiperlink veze prema drugim stranicama ili nekim resursima na našoj kao što su dokumenti za

preuzimanje ili neke druge datoteke. Za to koristimo <a></a> markere.

1. <a href=“http://www.algebra.hr“>link na Algebru</a>

Između <a></a> markera možete postaviti i sliku, i to tako da se, kada se

klikne na sliku, korisnika odvede na poveznicu (link) definiranu unutar href atributa.

1. <a href=“http://www.algebra.hr“>

2. <img src=“algebra_logo.jpg“ />

3. </a>

1.4.4 Liste i tablice

Kreiranje lista u HTML-u je jednostavno. Postoje dva tipa listi. Sortirane i

nesortirane liste. Sortirane liste kreirate pomoću <ol></ol> markera i

<li></li> podmarkera.

1. <ol>

2. <li>Prvi element</li>

3. <li>Drugi element</li>

4. <li>Treći element</li>

5. </ol>

Potonji kôd prikazat će sljedeće:

1. prvi element, 2. drugi element, 3. treći element.

Str.10§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

Sintaksa nesortirane liste je slična, samo je potrebno <ol></ol> markere

zamijeniti <ul></ul> markerima.

1. <ul>

2. <li>Prvi element</li>

3. <li>Drugi element</li>

4. <li>Treći element</li>

5. </ul>

Rezultat kôda je:

prvi element,

drugi element,

treći element. Stvaranje tablice s podacima u HTML-u najsloženije je što smo do sada spominjali. Da bi se prikazala tablica s podacima, potrebno je kombinirati nekoliko markera: <table></table> – definira gdje počinje, a gdje završava tablica; <tr></tr> – predstavljaju redak neke tablice. Tablica mora sadržavati bar jedan redak. U retku tablice nalaze se ćelije; <td></td> – definira pojedinu ćeliju tablice. Pokažimo sada primjer kreiranja tablice koja ima dva retka i dva stupca.

1. <table border=1>

2. <tr>

3. <td>redak1 kolona1</td>

4. <td>redak1 kolona2</td>

5. </tr>

6. <tr>

7. <td>redak2 kolona1</td>

8. <td>redak2 kolona2</td>

9. </tr>

10. </table>

Prethodni bi kôd prikazao sljedeće u pregledniku:

1.5 Neka temeljna pravila PHP-a

PHP je stvoren kako bi se njegov kôd mogao ugrađivati unutar HTML ili XML datoteka. Naravno, moguće je napisati i izvoditi samostalne PHP programe, no osnovna je ideja uključiti dio kôda unutar HTML stranice te se

Str.11§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

nakon obrade takvih dokumenata svaki dio s PHP kôdom zamijeni rezultatom koji se dobije njegovim izvršavanjem. Takav se dokument tada prikazuje korisniku u HTML obliku. Kada PHP obrađuje dokument, prvo se traže početni i završni PHP markeri koji govore PHP-u da interpretira kôd između njih.

1. <?php

2. // Ovdje ide PHP kod

3. ?>

Baš ovaj način označavanja kôda omogućuje da se PHP kôd uključi u razne vrste dokumenata. Većinu vremena vidjet ćete da je PHP uključen i ugniježđen unutar HTML dokumenata kao na sljedećem primjeru:

1. <p>Ovo je obični HTML tekst</p>

2. <?php echo 'Ovaj tekst je PHP tekst'; ?>

3. <p>Ovo je isto obični HTML tekst</p>

PHP kôd uvijek mora biti između markera. Kôd koji nije postavljen između PHP markera neće se izvršiti već će biti protumačen kao običan tekst i ispisat će se na stranici. U liniji 2 ovog primjera vidimo programski kôd između PHP markera:

2. <?php echo 'Ovaj tekst je PHP tekst'; ?>

Korištena je jezična konstrukcija echo koja u PHP-u služi za ispis teksta koji se nalazi između navodnika nakon ključne riječi echo. Ova jezična konstrukcija jako se često upotrebljava. Naime, da bi se unutar PHP markera ispisao neki tekst, nije dovoljno kao u HTML-u samo napisati tekst već je potrebno koristiti posebne jezične konstrukcije ili ugrađene PHP funkcije za ispis teksta. Prethodni ste primjer mogli napisati i drugačije:

1. <?php

2.

3. echo '

4. <p>Ovo je obični HTML tekst</p>

5. Ovaj tekst je PHP tekst

6. <p>Ovo je isto obični HTML tekst</p>';

7.

8. ?>

U ovom će slučaju PHP pogledati cijeli kôd, pronaći će PHP markere i izvršiti programski kôd između njih. Za razliku od prošlog primjera gdje smo pomoću PHP markera programski kôd za ispis ugnijezdili unutar HTML kôda, u ovom primjeru pomoću jezične konstrukcije echo ispisujemo i HTML kôd i našu rečenicu. I jedan i drugi način su ispravni i daju isti rezultat. Na programeru je da odabere koji će koristiti tj. koji mu je bliži i razumljiviji.

Str.12§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

Tekst „Ovaj tekst je PHP tekst“ mogli ste pohraniti u varijablu i ispisati na sljedeći način:

1. <?php

2. $tekst = ' Ovaj tekst je PHP tekst';

3.

4. echo '

5. <p>Ovo je obični HTML tekst</p>

6. '.$tekst.'

7. <p>Ovo je isto obični HTML tekst</p>';

8.

9. ?>

U primjeru ste koristili varijablu $tekst. O varijablama će biti riječ u posebnom poglavlju, no ovdje ih spominjemo kako bi samo prikazali neke mogućnosti PHP-a. Rezultat izvršavanja ovog kôda isti je kao i u prethodna dva primjera. Razlika je u tome da ovaj zadnji pristup ubrzava izmjene na kôdu. Ako morate promijeniti ovu rečenicu da ispisuje nešto drugo, ne morate se spuštati daleko u kôd i tražiti ovu rečenicu kako biste ju promijenili, već je onda odmah na početku pohranjena u varijablu i tu možete napraviti izmjenu, a rečenica će se ispisati u dijelu gdje ste naveli da se ispiše varijabla. Razlikovanje velikih i malih slova u PHP-u definirano je tako da imena funkcija i klasa koje definira korisnik te ugrađene konstrukcije kao i ključne riječi ne razlikuju velika i mala slova. To je najbolje prikazati sljedećim primjerom:

1. echo 'Hello World!';

2. ECHO 'Hello World!';

3. EcHo 'Hello World!';

Echo je ugrađena jezična konstrukcija unutar PHP-a i služi za prikaz jednog ili niza znakova. U prethodnom je primjeru vidljivo da nije bitno kako je riječ echo napisana. Ona je jedna od ključnih riječi koju PHP interpreter (engl. PHP Interpreter) prepoznaje i izvršava je bez obzira kako je napisana. Varijable razlikuju velika i mala slova. Pogledajmo sljedeći primjer:

4. $naziv = 'Algebra';

5. $Naziv = 'Algebra';

6. $NAZIV = 'Algebra';

Vidimo da nije riječ o jednoj varijabli, već o tri različite koje imaju istu vrijednost. Kolekcija PHP kôda koji nešto radi naziva se iskaz (engl. statement). Iskaz može biti jednostavan kao što je pridruživanje varijable ili neka složena petlja s mogućnošću više izlaznih točaka. U ovom je trenutku bitno samo da znamo prepoznati PHP iskaz. Slijedi primjer jednog jednostavnijeg iskaza na kojem ćemo objasniti još neka pravila.

Str.13§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

1. <?php

2.

3. // pocetak iskaza

4.

5. $a = 1;

6. $b = 2;

7.

8. if($a == $b)

9. {

10. echo 'varijabla a je jednaka varijabli b';

11. }

12. else

13. {

14. echo 'varijabla a nije jednaka varijabli b';

15. }

16.

17. // kraj iskaza

18.

19. ?>

Pregled potonjeg iskaza započet ćemo već spomenutim podacima. Cijeli iskaz započinje i završava PHP markerima. Početni marker je u liniji broj 1, a završni u liniji 19. U liniji 3 i 17 nalaze se komentari. Komentari su objašnjenja kôda. U sljedećem dijelu priručnika detaljnije ćemo se baviti komentiranjem kôda. U liniji 5 i 6 ponovo se susrećemo s varijablama. Kako smo i prije u tekstu spominjali, o njima će biti govora u zasebnom poglavlju, no za razumijevanje ovog programskog kôda dovoljno je zamisliti varijable kao spremnike u memoriji koji sadržavaju neke vrijednosti. U primjeru varijabla $a ima vrijednost broja 1, a varijabla $b ima vrijednost 2. U liniji 8 koristimo if-else iskaz kako bismo ispitali sadržaje varijabli. If-else iskaz detaljno je obrađen u posebnom poglavlju, a ovdje ga koristimo kako bismo ispitali istinitost izraza u zagradama. Detaljnija analiza ovog kôda nije potrebna jer se od vas u ovom trenutku ne očekuje da shvatite kako primjer funkcionira, već da uočite što bi to bio jedan programski iskaz.

1.6 Komentiranje kôda

Komentari služe kao pomoć osobama koje čitaju vaš kôd kako bi lakše shvatili što ste određenim iskazom željeli postići. Čak i ako mislite da ste vi jedina osoba koja će imati pristup kôdu, dobro je ostavljati komentare unutar kôda. Naime, kada se pojavi potreba da se određeni dio kôda doradi ili zamijeni, a kôd je napisan prije više mjeseci, tada ćete teže razumjeti što se u tom trenutku prije više mjeseci htjeli postići određenim iskazom. Poželjno je pisati komentare koji svojom količinom ne nadilaze vaš kôd, ali opet da su dovoljno jasni i daju dobar opis onoga što komentirate. Nekoliko je načina da se neki tekst unutar PHP kôda označi kao komentar. Pogledajmo kroz sljedeće primjere.

Str.14§

1. Poglavlje: Osnove PHP jezika

Tel: 01 2332 861, Fax: 01 2305 004 e-mail: [email protected]

§

www.algebra.hr §

Korištenje znaka ljestve (#):

1. # Ovo je komentar

Kada PHP naiđe na znak ljestvi unutar vašeg kôda, sve od tog znaka pa do kraja reda smatra se komentarom i PHP će ga zanemariti i neće izvoditi. Korištenjem kosih crta (//)

1. // Ovo je komentar

Kada PHP naiđe na dvije kose crte unutar vašeg kôda, sve od tih kosih crta pa do kraja reda smatra se komentarom i PHP će ga zanemariti i neće izvoditi. Korištenjem kose crte i zvjezdice (/* */)

1. /* Ovo je jedan

2. malo duži komentar

3. koji se proteže u više linija */

Kada PHP naiđe na kosu crtu i zvjezdicu (/*), sve od ta dva znaka pa do druge zvjezdice i kose crte (*/)smatra se komentarom i neće se izvoditi. Imena varijabli razlikuju velika i mala slova. S varijablama smo se do sada sreli već nekoliko puta, ali njihovo detaljno značenje i definicija bit će prikazani u sljedećem velikom poglavlju. Ovdje je bitno samo spomenuti da imena varijabli moraju zadovoljavati neka osnovna pravila. Ime varijable mora započeti slovom ili donjom crtom, a nikako brojem ili nekim drugim znakom. Ime varijable može sadržavati sva slova i brojeve te donju crtu, ali nikako ne smije sadržavati razmak i ostale posebne znakove. Evo nekoliko primjera ispravnih i neispravnih imena varijabli:

1. $var = 'Algebra';

2. $Var = 'Algebra';

3.

4. $4var = 'Algebra'; // neispravno, pocinje sa brojem

5. $_4var = 'Algebra';

6.

7. $var 2 = 'Algebra'; // neispravno, sadrzava razmak

8. $var_2 = 'Algebra';

Vratimo se još jednom na naš jednostavni iskaz s osnovnim pravilima. Od linije 8 do linije 15 proteže se if-else iskaz. Ono što je ovdje bitno primijetiti jest da PHP koristi točku-zarez (;) za razdvajanje jednostavnih iskaza, dok se kod složenih iskaza koriste vitičaste zagrade kako bi označile blok kôda. Nakon završne vitičaste zagrade nije potrebno postaviti točku-zarez. Možda se primijetili da unutar našeg jednostavnog iskaza s osnovnim pravilima ima dosta praznih redova i razmaka (bjelina). PHP-u bjeline i

Str.15§

UVOD U PHP I OBJEKTNO ORIJETNIRANO PROGRAMIRANJE

Zagreb - Maksimirska 58a

§

AL G E B R A §

prazni redovi nisu bitni. Tretira ih kao komentar i jednostavno preskače. Neki iskaz možete rastegnuti preko više redova ili sabiti sve u jedan red – PHP će ga jednako interpretirati i izvesti.

1.7 Zadaci za ponavljanje

1. Kako izgledaju PHP markeri koji uokviruju programski kôd i razlikuju

ga od HTML elemenata? a. /* */ b. <?php ?> c. { }

2. Koji je od sljedećih markera ispravan za pisanje komentara?

a. /* */ b. # c. //

3. Kreirajte PHP stranicu koja ima sve HTML elemente <head>, <title>

i <body>. Unutar <body> elementa kreirajte PHP dio koji će ispisivati tekst: "Dobar dan! Moje ime je Ivan Ivic."

4. Kreirajte novu PHP stranicu za koju vrijedi sve što je vrijedilo u

prethodnom zadatku, samo je ovaj put vaše ime i prezime potrebno pospremiti u varijable $ime i $prezime te ih iskoristiti da biste ispisali poruku. Pokušajte mijenjati vrijednosti varijabli i pogledajte što će se prikazati na ekranu.

5. Koristeći echo izraz ispišite HTML kôd za tablicu koja ima 4 stupca i

dva reda.