Sissejuhatus PHP OOP-sse
Nüüd hakkame õppima OOP-d PHP-s. Võtame näite elust, ja siis viime selle üle PHP-sse.
Näitena võtame auto. Sellel on rattad, värv, kere tüüp, mootori maht ja nii edasi. Lisaks võib juht sulle käske anda: sõida, peatu, pööra paremale, vasakule jne.
Võib öelda, et on olemas teatud klass autosid, millel on ühised omadused (kõigil on rattad ja kõigile neist saab käske anda).
Konkreetne auto, mis seisab tänaval - on selle klassi esindaja, või teiste sõnadega, objekt sellest klassist. Kõigil selle klassi objektidel on omadused: rataste arv, värv, kere tüüp ja meetodid: sõida, peatu, pööra paremale, vasakule.
Teiste sõnadega klass ise - on joonis, mille järgi tehases tehakse autosid. Objekt aga - on masin ise, mis on tehtud nende jooniste järgi.
PHP-s luuakse klass kasutades võtmesõna
class, millele järgneb selle klassi nimi.
Teeme klassi Car:
<?php
class Car
{
// siin kood, st PHP-joonis autost
}
?>
Määrame nüüd meie joonises, et iga auto, mis on loodud selle joonise järgi, on omadus värvi jaoks ja omadus kütuse koguse jaoks.
Selleks kirjutame klassi sisse omaduse
$color ja omaduse $fuel:
<?php
class Car
{
// Määrame omadused (sisuliselt klassi muutujad):
public $color; // auto värv
public $fuel; // kütuse kogus
}
?>
Teeme nüüd meie klassi meetodid.
PHP-s deklareeritakse meetodid, sarnaselt tavalistele funktsioonidele,
kasutades võtmesõna function,
mille ette kirjutatakse võtmesõna
public.
Nagu juba eespool mainitud, võib meie auto sõita, võib pöörata, võib peatuda. Teeme vastavad meetodid meie klassis:
<?php
class Car
{
public $color; // auto värv
public $fuel; // kütuse kogus
// Käsk sõita:
public function go()
{
// mingi PHP kood
}
// Käsk pöörata:
public function turn()
{
// mingi PHP kood
}
// Käsk peatuda:
public function stop()
{
// mingi PHP kood
}
}
?>
Me tegime meie auto joonise. Nüüd tuleb minna tehasele ja teha selle klassi objekt (st konkreetne auto).
PHP-s tehakse seda kasutades võtmesõna
new, millele järgneb klassi nimi:
<?php
new Car;
?>
Siiski, kui lihtsalt luua klassi objekt - see ei vii millegagi (see on sama, nagu näiteks kuulutada välja massiiv ja mitte kuhugi seda kirjutada). Meil on vaja muutujat selle objekti hoidmiseks.
Olgu see muutuja nimega $myCar
- kirjutame sellesse meie loodud objekti:
<?php
$myCar = new Car;
?>
Pärast auto loomist saab pöörduda
selle omaduste poole. Nende poole pöördumine toimub
läbi noole ->. Määrame
meie objekti omadused:
<?php
$myCar = new Car; // käsume tehasele teha auto
// Määrame objekti omadused:
$myCar->color = 'red'; // värvime punaseks
$myCar->fuel = 50; // valame kütuse
?>
Kõik, meie auto on loodud, värvitud ja tankitud. Nüüd saame anda talle käske läbi selle auto meetodite.
Meetodite poole pöördumine toimub samuti läbi noole, kuid, erinevalt omadusest, pärast meetodi nime tuleb kirjutada ümarsulud. Käskleme meie objektiga:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>