Uvod v OOP v PHP
Zdaj se bomo ukvarjali z učenjem OOP v PHP. Oglejmo si primer iz življenja, in ga nato prenesimo v PHP.
Za primer vzemimo avtomobil. Ta ima kolesa, barvo, vrsto karoserije, prostornino motorja in tako naprej. Poleg tega mu lahko voznik ukazuje: pelji, ustavi se, zavij desno, levo in tako naprej.
Lahko rečemo, da obstaja neka razred avtomobilov, ki ima skupne lastnosti (vsi imajo kolesa in vsem lahko ukazujemo).
Konkreten avtomobil, ki stoji na ulici - je predstavnik tega razreda, ali, z drugimi besedami, objekt tega razreda. Vsi objekti tega razreda imajo lastnosti: število koles, barvo, vrsto karoserije in metode: pelji, ustavi se, zavij desno, levo.
Z drugimi besedami, sam razred je načrt, po katerem v tovarni izdelujejo avtomobile. Objekt pa je samo vozilo, narejeno po tem načrtu.
V PHP se razred ustvari s ključno
besedo class, ki ji sledi ime
tega razreda. Naredimo razred Car:
<?php
class Car
{
// tukaj koda, to je PHP-načrt avtomobila
}
?>
Določimo zdaj v našem načrtu, da bo vsak avtomobil, ustvarjen po tem načrtu, imel lastnost za barvo in lastnost za količino goriva.
Za to znotraj razreda napišemo lastnost
$color in lastnost $fuel:
<?php
class Car
{
// Določimo lastnosti (v bistvu spremenljivke razreda):
public $color; // barva avtomobila
public $fuel; // količina goriva
}
?>
Naredimo zdaj metode našega razreda.
V PHP se metode, podobno kot običajne funkcije, deklarirajo
s ključno besedo function,
pred katero pišemo ključno
besedo public.
Kot že omenjeno, lahko naš avtomobil pelje, lahko zavije, lahko se ustavi. Naredimo ustrezne metode v našem razredu:
<?php
class Car
{
public $color; // barva avtomobila
public $fuel; // količina goriva
// Ukaz pelji:
public function go()
{
// nekakšna PHP koda
}
// Ukaz zavij:
public function turn()
{
// nekakšna PHP koda
}
// Ukaz ustavi se:
public function stop()
{
// nekakšna PHP koda
}
}
?>
Naredili smo načrt našega avtomobila. Zdaj je treba iti v tovarno in narediti objekt tega razreda (to je konkreten avtomobil).
V PHP se to naredi s ključno besedo
new, za katero pišemo ime razreda:
<?php
new Car;
?>
Vendar, če preprosto ustvarimo objekt razreda - to ne vodi do ničesar (to je enako, kot če bi, na primer, deklarirali tabelo in je ne shranili nikamor). Potrebujemo spremenljivko za shranjevanje tega objekta.
Naj se ta spremenljivka imenuje $myCar
- vanjo zapišimo ustvarjeni objekt:
<?php
$myCar = new Car;
?>
Po ustvarjanju avtomobila se lahko dostopamo
do njegovih lastnosti. Dostop do njih se zgodi
preko puščice ->. Nastavimo
lastnosti našega objekta:
<?php
$myCar = new Car; // ukazujemo tovarni, naj naredi avtomobil
// Nastavimo lastnosti objekta:
$myCar->color = 'red'; // pobarvamo v rdečo barvo
$myCar->fuel = 50; // natankamo gorivo
?>
Vse, naš avtomobil je ustvarjen, pobarvan in natankan. Zdaj mu lahko ukazujemo preko metod tega avtomobila.
Dostop do metod prav tako poteka preko puščice, toda, za razliko od lastnosti, za imenom metode sledijo okrogli oklepaji. Ukazujmo našemu objektu:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>