IZRADA SAJTA za 10 €

Home   FORUM   Toplista   HTML   CSS   JavaScript   PHP   DIZAJN   SEO   Mapa


KONTAKT
izuzetan[at]gmail.com






TOP LISTA SAJTOVA
Igrice
Slike

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.

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

class ime {
  function ime ($parametar){
     echo "Pozvan konstruktor sa parametrom $parametar<br>";
  }
}
$a = new ime ("prvi");
$a = new ime ("drugi");
$a = new ime ();

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

Pozvan konstruktor sa parametrom prvi
Pozvan konstruktor sa parametrom drugi
Pozvan konstruktor sa parametrom

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){
    $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.

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:

$x = $a - >operacija1();
$y = $a - >operacija2(12, "test");

Copyright © 2010 BUbaj. Powered By bubaj.com
PHP    PHP sintaksa    Fajl    Niz    String    Funkcija    Objektno programiranje    MySQL    Unos fajla    Datum    Forme    Sesija    Registracija