Úvod do OOP v PHP
Teraz sa budeme venovať štúdiu OOP v PHP. Pozrime sa na príklad zo života, a potom ho prenesieme do PHP.
Ako príklad si zoberme automobil. Ten má kolesá, farbu, typ karosérie, objem motora a tak ďalej. Okrem toho, vodič mu môže dávať príkazy: ísť, zastaviť sa, odbočiť doprava, doľava atď.
Môžeme povedať, že existuje istá trieda automobilov, ktorá má spoločné vlastnosti (všetky majú kolesá a všetkým im možno dávať príkazy).
Konkrétny automobil, stojaci na ulici - to je zástupca tejto triedy, alebo, inými slovami, objekt tejto triedy. Všetky objekty tejto triedy majú vlastnosti: počet kolies, farbu, typ karosérie a metódy: ísť, zastaviť sa, odbočiť doprava, doľava.
Inými slovami, samotná trieda - to je výkres, podľa ktorého sa v továrni vyrábajú automobily. Objekt je samotné auto, vyrobené podľa týchto výkresov.
V PHP sa trieda vytvára pomocou kľúčového
slova class, za ktorým nasleduje názov
tejto triedy. Vytvorme triedu Car:
<?php
class Car
{
// tu kód, teda PHP-výkres automobilu
}
?>
Určme teraz v našom výkrese, že akýkoľvek automobil, vytvorený podľa tohto výkresu, bude mať vlastnosť pre farbu a vlastnosť pre množstvo paliva.
Na to inside triedy napíšeme vlastnosť
$color a vlastnosť $fuel:
<?php
class Car
{
// Zadajme vlastnosti (v podstate premenné triedy):
public $color; // farba automobilu
public $fuel; // množstvo paliva
}
?>
Vytvorme teraz metódy našej triedy.
V PHP sa metódy, podobne ako obyčajné funkcie, deklarujú
pomocou kľúčového slova function,
pred ktorým sa píše kľúčové
slovo public.
Ako už bolo spomenuté vyššie, náš automobil môže ísť, môže zatáčať, môže zastaviť. Vytvorme zodpovedajúce metódy v našej triede:
<?php
class Car
{
public $color; // farba automobilu
public $fuel; // množstvo paliva
// Príkaz ísť:
public function go()
{
// nejaký PHP kód
}
// Príkaz zatáčať:
public function turn()
{
// nejaký PHP kód
}
// Príkaz zastaviť sa:
public function stop()
{
// nejaký PHP kód
}
}
?>
Spravili sme výkres nášho automobilu. Teraz je potrebné ísť do továrne a vytvoriť objekt tejto triedy (teda konkrétny automobil).
V PHP sa to robí pomocou kľúčového slova
new, za ktorým sa píše názov triedy:
<?php
new Car;
?>
Avšak, ak jednoducho vytvoríme objekt triedy - nepovedie to k ničomu (je to rovnako, ako, napríklad, deklarovať pole a nikam ho nezapísať). Potrebujeme premennú na uchovanie tohto objektu.
Nech sa táto premenná volá $myCar
- zapíšme do nej vytvorený objekt:
<?php
$myCar = new Car;
?>
Po vytvorení automobilu možno pristupovať
k jeho vlastnostiam. Prístup k nim prebieha
prostredníctvom šípky ->. Nastavme
vlastnosti nášho objektu:
<?php
$myCar = new Car; // prikážeme továrni vyrobiť automobil
// Nastavujeme vlastnosti objektu:
$myCar->color = 'red'; // farbíme na červeno
$myCar->fuel = 50; // natankujeme palivo
?>
Hotovo, náš automobil je vytvorený, namaľovaný a natankovaný. Teraz mu môžeme dávať príkazy prostredníctvom metód tohto automobilu.
Prístup k metódam tiež prebieha prostredníctvom šípky, ale, na rozdiel od vlastnosti, za názvom metódy nasledujú okrúhle zátvorky. Dávajme príkazy nášmu objektu:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>