Što je PHP ?
Osnove sintakse
Podržani tipovi
Varijable
Klase i objekti
Kontrolne strukture
Rad s mySQL bazom
Zaključak
5. Klase i objekti

5.1. Klasa (class)

Klasa je skup varijabli i funkcija koje radi s tim varijablama. Klasa se definira koristeći sljedeću sintaksu:

Primjer:

<html>
<head>
<title>Primjer ugradjenog koda</title>
</head>
<body>

<?php
class Kosarica {
var $artikli;
// artikli u kosarici

// Dodaj $broj artikala $sifArtikla u kosaricu

function dodaj_artikl ($sifArtikla, $broj) {
$this->artikli[$sifArtikla] += $broj;
}

// Izvadi$broj artikala $sifArtikla iz kosarice

function brisi_artikl ($sifArtikla, $broj) {
if ($this->artikli[$sifArtikla] > $broj) {
$this->artikli[$sifArtikla] -= $broj;
return true;
} else {
return false;
}
}


}
?>

</body>
</html>

NAPOMENA: varijable unutar istog objekta se dohvaćaju sa $this->imeVarijable
Gornji primjer definira klasu Kosarica koja se sastoji od polja artikala u košarici i metoda za dodavanje i brisanje artikala iz košarice...

Klase su tipovi, odnosno, one su predložak za stvarne varijable. Da bi kreirali varijablu tipa neke klase, potrebno je koristiti operator new.

Primjer:

$moja_kosara = new Kosarica;
$moja_kosara->dodaj_artikl("200342",5)

Gornjim primjerom smo kreirali objekt moja_kosara klase Kosarica, a potom smo u objekt moja_kosara dodali 5 artikala sifre 200342.


Klase također mogu biti proširena verzija osnovne klase... To znači, da nova klasa ima sve varijable i funkcije kao i osnovna klasa, ali ima i dodatne funkcije i varijable koje osnovna klasa nema. Ovo se radi uz pomoć ključne riječi extends.

Primjer:

<html>
<head>
<title>Primjer ugradenog koda</title>
</head>
<body>

<?php
class Kosarica_s_imenom extends Kosarica {

var $vlasnik;

function postavi_vlasnika($ime) {

$this->vlasnik=$ime;

}


}

?>

</body>
</html>

Dakle, gornja klasa ima sve metode i varijable klase Kosarica, ali uvodi i novu vlastitu varijablu $vlasnik i novu vlastitu metodu postavi_vlasnika.

Primjer:

$imenovana_kosarica = new Kosarica_s_imenom;
$imenovana_kosarica->postavi_vlasnika("Djoni Bravo");
echo $imenovana_kosarica->vlasnik;
$imenovana_kosarica->dodajArtikl("200320",23);

Ne postoji mogućnost visestrukog nasljeđivanja u PHP-u, a to znači da proširena klasa može naslijediti svojstva i metode samo jedne osnovne klase !

Prethodna Sljedeća