PHP – Klase i objekti

Klase predstavljaju opลกtu kategoriju u objektno-orijentisanom programiranju, koja opisuje grupu posebnih elemenata koji se nazivaju objekti i nalaze se unutar grupe. Klasa je opisni element, i u programiranju sluลพi za definisanje skupa atributa ili skupa akcija (funkcija) koje su dostupne drugim delovima programa, a karakteristiฤne su za sve ฤlanove jedne klase. Definisanje klasa u objektno-orijentisanom programiranju je vrlo sliฤno definisanju tipova podataka u strukturnom programiranju.

U PHP-u jedna klasa je, najjednostavnije reฤeno, kolekcija varijabli i funkcija koje manipuliลกu ovim varijablama. U sledeฤ‡im redovima videฤ‡emo naฤin definisanja jedne klase:


<?php
class Racun {
var $stavke;
// Stavke koje se kupuju

// Dodavanje odredj. br $kom artikala na racun br. $ser_br
function dodaj_stavku ($ser_br, $kom) {
$this->stavke[$ser_br] += $kom;
}

// Skidanje odredj. br $kom artikala sa racuna br. $ser_br
function ukloni_stavku ($ser_br, $kom) {
if ($this->stavke[$ser_br] > $kom) {
$this->stavke[$ser_br] -= $kom;
return true;
} else {
return false;
}
}
}
?>


Kao ลกto moลพete videti, definisali smo klasu „Racun“ (kupovni raฤun) koja sadrลพi odreฤ‘eni broj artikala – stavki (niz $stavke) i dve funkcije:
  • dodaj_stavku() – funkcija za dodavanje odreฤ‘eneog broja (kom) artikala (ser_br) na raฤun
  • ukloni_stavku()– funkcija za skidanje, takoฤ‘e, odreฤ‘enog broja (korisnik ne mora poniลกtiti kupovinu svih) stavki sa raฤuna.

Poลกto smo rekli da su klase kao tipovi podataka, da bi ih upotrebili u programiranju, potrebno je da deklariลกemo varijable na osnovu klase:


$racun = new Racun;
$racun->dodaj_stavku(„10“, 1);

Ovaj kod ฤ‡e kreirati objekat $racun koji pripada klasi Racun. Zatim smo funkcijom „dodaj_stavku()“, na raฤun dodali 1 komad artikla sa serijskim brojem 10.

Klase inaฤe mogu biti proลกirenja drugih klasa. Pri tome, proลกirena klasa ima sve varijable i funkcije osnovne klase (kroz tzv. nasleฤ‘ivanje) i moลพe da ima dodatne sopstvene varijable i funkcije. Da naglasimo i to da viลกestruko nasleฤ‘ivanje nije podrลพano. Evo primera proลกirivanja prethodno definisane klase Racun:


class Kupovni_Racun extends Racun {
var $kupac;

function unos_kupca ($ime) {
$this->kupac = $ime;
}
}


Ovim smo definisali novu klasu – Kupovni_Racun, koja ima sve varijable i funkcije kao i klasa Racun, kao i dodatnu varijablu $kupac i funkciju unos_kupca().

Pratite Krstaricu na www.krstarica.com