Uvod u OOP u PHP
Sada ćemo se baviti izučavanjem OOP u PHP. Hajde da razmotrimo primer iz života, a zatim da ga prenesemo u PHP.
Kao primer uzeti automobil. On ima točkove, boju, vrstu karoserije, zapreminu motora i tako dalje. Pored toga, vozač može da mu daje komande: kreni, stani, skreni desno, levo i slično.
Možemo reći da postoji određeni klasa automobila, koji poseduje zajednička svojstva (svi imaju točkove i svima se mogu davati komande).
Konkretan automobil, koji stoji na ulici - to je predstavnik ove klase, ili, drugim rečima, objekat ove klase. Svi objekti ove klase imaju svojstva: broj točkova, boja, vrsta karoserije i metode: kreni, stani, skreni desno, levo.
Drugim rečima sam klasa - to je crtež, po kojemu se u fabrici prave automobili. Objekat pak - to je sama mašina, napravljena po tim crtežima.
U PHP klasa se kreira pomoću ključne
reči class, iza koje sledi naziv
te klase. Hajde da napravimo klasu Car:
<?php
class Car
{
// ovde kod, odnosno PHP-crtež automobila
}
?>
Navedimo sada u našem crtežu da će svaki automobil, napravljen po ovom crtežu, imati svojstvo za boju i svojstvo za količinu goriva.
Za ovo unutar klase napišimo svojstvo
$color i svojstvo $fuel:
<?php
class Car
{
// Zadajmo svojstva (u suštini promenljive klase):
public $color; // boja automobila
public $fuel; // količina goriva
}
?>
Hajde sada da napravimo metode naše klase.
U PHP metode, poput običnih funkcija, deklarišu se
pomoću ključne reči function,
ispred koje se piše ključna
reč public.
Kao što je već pomenuto gore, naš automobil može da ide, može da skreće, može da se zaustavi. Napravimo odgovarajuće metode u našoj klasi:
<?php
class Car
{
public $color; // boja automobila
public $fuel; // količina goriva
// Komanda kreni:
public function go()
{
// neki PHP kod
}
// Komanda skreni:
public function turn()
{
// neki PHP kod
}
// Komanda zaustavi se:
public function stop()
{
// neki PHP kod
}
}
?>
Mi smo sa vama napravili crtež našeg automobila. Sada treba da odemo u fabriku i napravimo objekat ove klase (odnosno konkretan automobil).
U PHP ovo se radi pomoću ključne reči
new, iza koje se piše ime klase:
<?php
new Car;
?>
Međutim, ako samo kreirate objekat klase - to neće dovesti do ničega (to je isto, kao, na primer, deklarisati niz i nigde ga ne upisati). Potrebna nam je promenljiva za čuvanje ovog objekta.
Neka se ova promenljiva zove $myCar
- upisaćemo u nju kreirani objekat:
<?php
$myCar = new Car;
?>
Nakon kreiranja automobila može se pristupati
njegovim svojstvima. Pristupanje njima se obavlja
preko strelice ->. Hajde da postavimo
svojstva našeg objekta:
<?php
$myCar = new Car; // komandujemo fabrici da napravi automobil
// Postavljamo svojstva objekta:
$myCar->color = 'red'; // farbamo u crvenu boju
$myCar->fuel = 50; // sipamo gorivo
?>
Sve, naš automobil je kreiran, ofarban i napunjen. Sada mu možemo davati komande preko metoda ovog automobila.
Pristupanje metodima se takođe obavlja preko strelice, ali, za razliku od svojstva, iza imena metoda treba pisati okrugle zagrade. Hajde da komandujemo našim objektom:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>