19
OOP- Objektno Orjentisano Programiranje Objektno programiranje Objektno orijentisano programiranje (OOP) je tehnika programiranja zasnovana na objektima i njihovim medjusobnim interakcijama. Danas u gotovo svim oblastima softvera objektno orjentisano programiranje postalo je standard, dok se funkcijski orjentisan softver (onaj koji smo do sada razmatrali) smatra staromodnim. Funkcijski orjentisan softver moguće je koristiti za male aplikacije dok za veće projekte je takav pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što je vezano za softver, na primer neki fajl, polje za unos teksta, ili neki objekti iz stvarnog sveta koje treba pretstaviti u softveru, na primer neki proizvodi, kupci itd. Objektno orjentisan softver se sastoji od više samostalnih objekata koji su medjusobno povezani atributima i operacijama. Atributi su svojstva ili promenjljive koje se odnose na objekat. Operacije su metode, radnje ili funkcije koje objekat može da izvršava. Klase su skup objekata koji imaju velike sličnosti i male razlike. Na primer sa “bicikle” možemo obeležiti klasu objekata u koju spadaju različite bicikle, male za decu, velike, trkačke, ženske, muške, sa branicima, bez branika, plave, crvene itd. Polimorfizam je svojstvo svih objektno orijentisanih programskih jezika, što znači da ista operacija može da se različito ponaša u različitim klasama. Na primer, operacija vožnje klase “automobili” i klase “bicikli” su različiti jer se na jedan način voze automobile a na drugi način bicikle. Od neke jednostavne osnovne klase objekata mogu da se izvedu (nadograde) složenije, specijalizovanije klase što se naziva metod nasledjivanja. Ovo omogućava ponovnu upotrebu usavršenog koda klase. Ovo je i najveća prednost objektno orijentisanog softvera. Nasledjivanje ubrzava programiranje jer se operacije pišu jednom u nadklasi, umesto da se pišu mnogo puta u zasebnim potklasama. Klase, atributi, operacije, konstruktori Klasa (class) Za pravljenje klasa u PHP-u se koristi reč class. Klasa izgleda ovako: class ime { var $atribut1;

OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

  • Upload
    vutu

  • View
    231

  • Download
    6

Embed Size (px)

Citation preview

Page 1: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

OOP- Objektno Orjentisano Programiranje

Objektno programiranje

Objektno orijentisano programiranje (OOP) je tehnika programiranja zasnovana na objektima i

njihovim medjusobnim interakcijama.

Danas u gotovo svim oblastima softvera objektno orjentisano programiranje postalo je standard,

dok se funkcijski orjentisan softver (onaj koji smo do sada razmatrali) smatra staromodnim.

Funkcijski orjentisan softver moguće je koristiti za male aplikacije dok za veće projekte je takav

pristup jako ne ekonomičan pa se koristi OOP.

Objekat u PHP-u može biti bilo šta što je vezano za softver, na primer neki fajl, polje za unos

teksta, ili neki objekti iz stvarnog sveta koje treba pretstaviti u softveru, na primer neki

proizvodi, kupci itd.

Objektno orjentisan softver se sastoji od više samostalnih objekata koji su medjusobno povezani

atributima i operacijama. Atributi su svojstva ili promenjljive koje se odnose na objekat.

Operacije su metode, radnje ili funkcije koje objekat može da izvršava.

Klase su skup objekata koji imaju velike sličnosti i male razlike. Na primer sa “bicikle” možemo

obeležiti klasu objekata u koju spadaju različite bicikle, male za decu, velike, trkačke, ženske,

muške, sa branicima, bez branika, plave, crvene itd.

Polimorfizam je svojstvo svih objektno orijentisanih programskih jezika, što znači da ista

operacija može da se različito ponaša u različitim klasama. Na primer, operacija vožnje klase

“automobili” i klase “bicikli” su različiti jer se na jedan način voze automobile a na drugi način

bicikle.

Od neke jednostavne osnovne klase objekata mogu da se izvedu (nadograde) složenije,

specijalizovanije klase što se naziva metod nasledjivanja. Ovo omogućava ponovnu upotrebu

usavršenog koda klase. Ovo je i najveća prednost objektno orijentisanog softvera. Nasledjivanje

ubrzava programiranje jer se operacije pišu jednom u nadklasi, umesto da se pišu mnogo puta u

zasebnim potklasama.

Klase, atributi, operacije, konstruktori

Klasa (class)

Za pravljenje klasa u PHP-u se koristi reč class. Klasa izgleda ovako:

class ime {

var $atribut1;

Page 2: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

var $atribut2;

}

Atributi klase

Ova klasa sadrži atribute $atribut1 i $atribut2. Atributi se prave upotrebom rezervisane reči var

u telu klase.

Operacije klase

Operacije klase se definišu kao funkcije u definiciji klase. Napravimo sada klasu ime sa dve

operacije:

class ime {

function operacija1 (){

}

function operacija2 ($parametar1, $parametar2){

}

}

Konstruktori klase

Većina klasa sadrži posebnu operaciju koja se zove konstruktor . Konstruktor se poziva

prilikom pravljenja objekta i obično obavlja korisne početne poslove poput davanja razumnih

početnih vrednosti atributima ili pravljenja zavisnih objekata. Konstruktor se deklariše isto kao i

druge operacije, ali se zove kao klasa. Iako se konstruktor može ručno pozvati njegova glavna

svrha je automatsko pozivanje prilikom pravljenja objekta. Klasa sa konstruktorom se deklariše

na sledeći način:

class ime {

function ime ($parametar) {

echo " Pozvan konstruktor sa parametrom $parametar<br>";

}

}

Kao što znamo imena svih funkcija u PHP skriptama moraju biti jedinstvena uključujući i

kostruktor.

Instanciranje, upotreba atributa klase i pozivanje operacija

klase

Instanciranje klase

Programiranje objekta – člana klase naziva se pravljenje instance ili instanciranje klase.

Objekat se pravi upotrebom rezervisane reči new. Potrebno je navesti klasu i zadati parametre

konstruktora.

Page 3: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

Sledeći kod deklariše klasu ime sa konstruktorom i zatim pravi tri objekta tog tipa:

klasa.php

class ime {

function ime ($parametar){

echo "Pozvan konstruktor sa parametrom $parametar<br>";

}

}

$a = new ime ("prvi");

$a = new ime ("drugi");

$a = new ime ();

zdravo.php

<?php

class zdravo {

function zdravo ($parametar){

echo "Zdravo ". $parametar." , kako si?<br>";

}

}

$a = new zdravo ("Bojane");

$a = new zdravo ("Bane");

$a = new zdravo ("Žarko");

?>

Konstruktor se poziva svaki put kad se pravi objekat, pa je rezultat sledeći:

Upotreba atributa klase

Upotreba atributa klase unutar klase, posebna promenjljiva $this odnosi se na tekući objekat.

Atributu $atribut tekućeg objekta možete da pristupite po imenu $this->atribut unutar operacije

klase. Evo primera:

class ime {

var $atribut;

function operacija($parametar){

Page 4: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$this -> atribut=$parametar;

echo $this -> atribut;

}

}

U PHP-u se svi atributi i operacije vide izvan klasa (znači svi su javni).

Prethodni odlomak se može napisati i drugačije pristupanjem podacima i izvan klase, upotrebom

nešto drugačije klase:

class ime {

var $atribut;

}

$a = new ime();

$a -> atribut="vrednost";

echo $a -> atribut;

Medjutim ovakav direktan pristup atributima izvan klase kao u ova dva primera nije

preporučljiv. Jedna od prednosti objektno orjentisanog razvoja je ta što podstiče kapsuliranje.

Iako se u PHP-u ne mogu sakriti podaci, uz malo truda možete postići iste rezultate.

Ako umesto direktnog pristupa atributima neke klase napišete pristupne funkcije moći ćete da

upravljate pristupom u jednom bloku koda. Pristupne funkcije mogu izgledati ovako:

class ime {

var $atribut;

function citaj_atribut(){

return $this -> atribut;

}

function zadaj_atribut($nova_vrednost){

$this -> atribut=$nova_vrednost;

}

}

Funkcija "citaj_atribut" samo vraća vrednost atributa $atribut, dok funkcija zadaj_atribut

dodeljuje tom atributu novu vrednost. Kao što vidimo samo jedan blok koda pristupa

konkretnom atributu. Kada ovako imate samo jednu tačku pristupa možete na primer kasnije, ako

se ukaže potreba, da vrednost $atribut podesite na primer da bude iz opsega 0 i 100 tako što će te

dodati nekoliko redova na samo jednom mestu u funkciji zadaj_atribut. Da nismo upotrebili

pristupnu funkciju morali bi smo da pretražujemo svaki red u kodu i da menjamo svaki pristup

atributu što je jako obiman posao podložan greškama.

Kada imate samo jednu tačku pristupa osnovnu relaciju slobodno možete da menjate. Pristupna

funkcija omogućava da izmenite način na koji se atribut čuva i to samo na jednom mestu.

Umesto da atribut snimite kao promenjljivu možete ga po potrebi pozvati iz baze podataka, ili da

svaki put izračunavate njegovu tekuću vrednost, ili da ga utvrdite na osnovu vrednosti ostalih

atributa ili da podatke pakujete. Za kakvu god promenu da se odlučite dovoljno je da izmenite

pristupnu funkciju. To neće uticati na druge delove koda dokle god pristupna funkcija prima ili

vraća podatke koje ostali delovi programa očekuju.

Page 5: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

Primer

function podesiTelefonVlasnika($brojTelefona){

$this->telefonVlasnika=$brojTelefona;

}

Pozivanje operacija klase

Operacija klase poziva se otprilike isto kao i atributi klase.

class ime {

function operacija1(){

}

function operacija2($parametar1, $parametar2){

}

}

Ako na sledeći način napravite objekat $a:

$a = new ime();

Operacije pozivate isto kao i druge funkcije navodjenjem imena i potrebnih parametara u

zagradama. Obzirom da te operacije pripadaju objektima a ne nekoj običnoj funkciji, potrebno je

naglasiti kom objektu pripada. Ime objekta se koristi isto kao i prilikom pristupanja atributu tog

objekta:

$a -> operacija1();

$a -> operacija2(12,"test");

Rezultati se čitaju na sledeći način:

function procitajTelefonVlasnika(){

return $this->telefonVlasnika;

}

Primeri

Kuce.php Prijavljuje kucice za pasos

<?php

Page 6: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

Class Pas{

private $telefonVlasnika;

public $imeVlasnika,$ime;

function podesiImePsa($ime){

$this->ime=$ime;

}

function podesiTelefonVlasnika($brojTelefona){

$this->telefonVlasnika=$brojTelefona;

}

function procitajTelefonVlasnika(){

return $this->telefonVlasnika;

}

function podesiRasu($rasaPsa){

$rasa='Rasa Podesena na: '.$rasaPsa;

$this->rasa=$rasaPsa;

return $rasa;

Page 7: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

}

function podesiImeVlasnika($imeVlasnika){

$this->imeVlasnika=$imeVlasnika;

}

}

$mojPas=new Pas();

$mojPas->podesiImePsa('Rex');

$mojPas->podesiTelefonVlasnika('+381 66 666 666');

echo $mojPas->ime; // ovo vraca Rex

echo '<br />';

//echo $mojPas->telefonVlasnika; // ovo vraca Fatal error: Cannot access private property

Pas::$telefonVlasnika

$mojPas->ime='Rex Prvi';

echo $mojPas->ime; // ovo vraca Rex Prvi

echo '<br />';

Page 8: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

//$mojPas->telefonVlasnika='+381 66 999 999'; // ovo vraca Fatal error: Cannot access private

property Pas::$telefonVlasnika

echo $mojPas->procitajTelefonVlasnika(); //vraca: +381 66 666 666

echo '<br />';

echo $mojPas->podesiRasu('opak Pas'); // vraca Rasa Podesena na: opak Pas

echo '<br />';

echo $mojPas->rasa; //vraca: opak Pas

echo "<br>".'a sad da prijavim komsijinog psa<br>';

$komsijinpas=new Pas();

$komsijinpas->podesiImePsa('Kerber');

echo 'Njegovo ime je: '.$komsijinpas->ime;

echo $komsijinpas->podesiRasu('avlijaner');

$mojPas->podesiImeVlasnika('Zorica');

echo '<br>Vlasnik moga psa se zove: ';

echo $mojPas->imeVlasnika;

?>

Br.php Broji korake koji se izvrse u nekoj petlji

<?PHP

class brojac {

function brojac ($od,$do,$korak){

$this->od=$od;

$this->do=$do;

Page 9: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$this->korak=$korak;

$this->broj=$this->od;

}

var $izvrsen=0;

function radi(){

while($this->broj+$this->korak<=$this->do){

$this->izvrsen++;

$this->mat();

$this->ispisi();

}

}

function ispisi(){

echo $this->broj.",";

}

function mat(){

$this->broj=$this->broj+$this->korak;

}

}

$brojac1 = new brojac(0,10,1); /*Da bismo koristili ovu

klasu moramo kreirati instancu objekta*/

$brojac1->radi();/*Nakon toga pozvati ćemo metodu radi()*/

Page 10: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$brojac2 = new brojac(0,50,2);

$brojac3= new brojac (0,100,3);

echo "<br />";

$brojac2->radi();

?>

<html>

<body>

Nasledjivanje

Nasleđivanje se obavlja pomoću rezervisana reč extends I znači da je klasa B proširenje ili

nadskup klase A. Klasa B ima sve što ima klasa A I još nešto pride što se doda, npr $atribut2 :

class B extends A{

var $atribut2;

function operacija2(){

}

}

Primer

class brojac_pisi_tekst extends brojac {

function brojac_pisi_tekst($tekst){

$this->tekst=$tekst;

}

function ispisi_tekst(){

Ako se klasa A definiše na sledeći način:

class A{

var $atribut1;

function operacija1(){

}

}

Page 11: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

Sledeći iskazi su ispravni:

$b = new B();

$b -> operacija1();

$b -> $atribut1 = 10;

$b -> operacija2();

$b -> $atribut2 = 10;

Obzirom da klasa B proširuje (nasledjuje) klasu A, možete upotrebiti funkciju operacija1 i atribut

$atribut1 iako su oni deklarisani u klasi A. Kao potklasa klase A klasa B nasledjuje

funkcionalnost i podatke. Osim toga, klasa B je deklarisala i sopstveni atribut i operaciju.

Treba imati u vidu da nasledjivanje funkcioniše samo u jednom smeru. Potklasa može naslediti

karakteristike od svakog pretka, odnosno nadklase, dok predak ne nasledjuje karakteristike

potomka. To znači da poslednja dva reda sledećeg koda nisu ispravni:

$a = new A ();

$a -> operacija1();

$a -> $atribut1 = 10;

$a -> operacija2();

$a -> $atribut2 = 10;

Klasa A nema funkciju operacija2, ni atribut $atribut2.

Prikazali smo potklasu koja deklariše nove atribute i operacije. Ispravno je, i po nekad korisno

deklarisati iste atribute i operacije kao u nadklasi. To se može uraditi da bi se nekom atributu u

potklasi dala drugačija vrednost u odnosu na isti atribut u natklasi ili da bi se operaciji u potklasi

promenila funkcionalnost u odnosu na istu operaciju u natklasi. Promena funkcionalnosti u

potklasi je redefinisanje. Ako je na primer klasa A sledeće:

class A {

var $atribut="vrednost";

function operacija(){

echo "nesto <br>";

echo "vrednost \$atribut je $this -> $atribut<br>";

}

}

I želite da promenite podrazumevanu vrednost atributa $atribut i promenite funkcionalnost

operacije operacija tada klasu B, koja definiše taj atribut i tu operaciju, možete da napravite na

sledeći način:

class B extends A {

var $atribut="drugacija vrednost";

function operacija(){

echo "nesto<br>";

echo "vrednost \$atribut je $this -> $atribut<br>";

}

}

Deklarisanje klase B ne utiče na prvobitnu definiciju klase A. Pogledajte naredna dva reda:

Page 12: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$a = new A ();

$a -> operacija();

.

Primer objektno orjentisanog programiranja

Ovde ću da objasnim kako sam napravila stranicu JSON u detalje.

Klasu će se zvati sajt a jedna stranice sajta- stavka u meniju, u stvari biće objekti:

class sajt {

}

A operacija klase pod nazivom sadrzaj.

function sadrzaj ($menijson1, $tekstjson, $naslov){

Sada kreiramo sajt:

Konstantni HTML deo sajta Htmljson1.php

Page 13: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

<?php

$strana='

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<link rel="stylesheet" href="stilkursa.css">

<meta name=Generator content="Microsoft Word 12 (filtered)">

<title>'.$naslov.'</title>

</head>

<body>

<div class="header">

<h1>Programski jezik JSON</h1>

</div>

<div class="row">

<div class="col-3 col-m-3 menu">

'.$menijson1.'

</div>

<div class="col-6 col-m-9">

'.$tekstjson.'

</div>

<div class="col-3 col-m-12">

<div class="aside">

<h2>Obaveštenja:</h2>

Page 14: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

<h3>Sledeća lekcija se održava u:</h3>

<p id="slede"></p>

<script src="scriptsajta.js"></script>

<h3>Novine na sajtu</h3>

<p id="novije"></p>

<p id="novo"></p>

<h3>I deo test-pripremni</h3>

<p><a id="linkovi" href="stvari/KVIZ I DEO KURSA bezodg.pdf"

target="_blank">test u PDF-u</a></p>

</div>

</div>

</div>

<div class="footer">

<p id="dole"></p>

<script src="scriptsajta.js"></script>

</div>

</body>

</html>

';

?>

Page 15: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

Navigacijski deo

Menijson1.php

<?php

$dugmici="

<ul>

<li><a href=\"json.php\">Home</a></li>

<li><a href=\"json.php?u=Uvod\">Uvod</a></li>

<li><a href=\"json.php?u=Stringovi\">Stringovi, nizovi u JS</a></li>

<li><a href=\"json.php?u=Json\">Šta je Json</a></li>

<li><a href=\"json.php?u=format\">Json format</a></li>

<li><a href=\"json.php?u=konvertovanje\">Konvertovanje Json u JS

objekat</a></li>

<li><a href=\"json.php?u=Primeri\">Primeri za Json</a></li></ul>

";

?>

KOD za sadržaj sajta koji se menja na osnovu promene stavki iz menija Tekst.php

<?php

$Uvod='

<p class=MsoNormal align=center ><b><u><span

style=\'font-size:20.0pt;line-height:115%;font-family:"Times New

Roman","serif";

background:red\'>Uvo&#273;enje programskog jezika Json</span></u></b></p><p

class=MsoNormal><span lang=IT style=\'font- size:12.0pt;line-height:115%\'>Za

razumevanje je potrebnoda se znaju stringovi i nizovi u

JavaScriptu.</span></p>';

Page 16: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$Stringovi='

<p class=MsoNohtml deo sadržaja za naslov Nasledjivanje

";

?>

Ovaj kod za sadržaj sajta smestićemo u fajl tekstjson.php

PHP KOD koji koji sadrži klasu i mehanizam pravljenja stranice

Upravo ovaj deo je vezan sa objekto orijentisano programiranje. Smestimo kod u fajl json.php

Json.php

<?php

include ('menijson1.php');

include ('tekstjson.php');

$t=$_GET['u'];

echo $t;

if (!$t) {

$t='json';

$tekstjson='Dobro dosli na nasim stranicama. Zelimo vam uspesno ucenje';

}else{

$tekstjson=$$t;

}

$ObjekatSajt = new sajt();

$ObjekatSajt -> sadrzaj($dugmici, $tekstjson, $t);

Page 17: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

class sajt {

function sadrzaj ($menijson1, $tekstjson, $naslov){

include ('htmljson1.php');

echo $strana;

}

}

?>

Na početku umetnemo menijson.php i tekstjson.php u Json.php pomoću

<?php

include ('menijson1.php');

include ('tekstjson.php');

Taj meni možemo kasnije da menjamo za neku drugu lekciju. Tekst takođe.

Iz brauzera uzimamo link za stavke menija pomoću:

$t=$_GET['u'];

echo $t;

if (!$t) {

$t='json';

$tekstjson='Dobro dosli na nasim stranicama. Zelimo vam uspesno ucenje';

}else{

$tekstjson=$$t;

}

Mehanizam funkcionisanja GET-a u ovoj situaciji evo:

PHP $_GET

PHP $_GET može da se koristi za prikupljanje podataka nakon sabmitovanja neke HTML forme

sa method="get".

Page 18: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

$_GET takođe može da se koristi za prikupljanje podataka poslatih u URL.

Recimo da imamo neku HTML starnu koja ima hiperlink sa parametrima:

Saget.php

<html>

<body>

<a href="proba_get.php?naslov=PHP&web=http://matkos.in.rs/kurs/pocetnakurs.html">Probam $GET</a>

</body>

</html>

Ukoliko korisnik klikne na link "Probam $GET", parameteri "naslov" i "web" se šalju u

"proba_get.php", I može da se očitaju njihove vrednosti u programu"proba_get.php" sa $_GET.

Proba_get.php

<?php

echo "Upoznajte " . $_GET['naslov'] . " na sajtu " . $_GET['web'];

?>

</body>

</html>

Zatim napravimo klasu sajta

class sajt {

function sadrzaj ($menijson1, $tekst, $naslov){

include ('htmljson1.php');

echo $strana;

Page 19: OOP- Objektno Orjentisano Programiranje Objektno ... - …matkos.in.rs/kurs/stvari/OOP.pdf · pristup jako ne ekonomičan pa se koristi OOP. Objekat u PHP-u može biti bilo šta što

}

}

Ta klasa ima operaciju sadrzaj, koja ulazne parametre $menijson1, $tekst, $naslov smešta

na stranicu tamo gde treba i gde je navedeno u fajlu htmljson1.phpracija sadrzaj . A zatim sve

to prikazuje naredbom echo $strana u vidu web stranice.