Tehnika Krstarice > Programiranje > PHP - Klase i objekti

PHP - Klase i objekti

24.07.2001.

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().

Preporučite ovaj članak

3.00 (glasova: 3)