Úvod do OOP v PHP
Nyní se budeme zabývat studiem OOP v PHP. Podívejme se na příklad ze života, a pak jej přeneseme do PHP.
Jako příklad si vezmeme automobil. Ten má kola, barvu, typ karoserie, objem motoru a tak dále. Kromě toho jej může řidič ovládat: jet, zastavit, zatáčet doprava, doleva atd.
Lze říci, že existuje určitá třída automobilů, která má společné vlastnosti (všechny mají kola a všechny lze ovládat).
Konkrétní automobil stojící na ulici - to je zástupce této třídy, nebo jinými slovy, objekt této třídy. Všechny objekty této třídy mají vlastnosti: počet kol, barvu, typ karoserie a metody: jet, zastavit, zatáčet doprava, doleva.
Jinými slovy, samotná třída je výkres, podle kterého se v továrně vyrábějí automobily. Objekt pak je samotné auto, vyrobené podle těchto výkresů.
V PHP se třída vytváří pomocí klíčového
slova class, za kterým následuje název
této třídy. Vytvořme třídu Car:
<?php
class Car
{
// zde kód, tedy PHP-výkres automobilu
}
?>
Pojďme nyní v našem výkresu určit, že jakýkoli automobil, vytvořený podle tohoto výkresu, bude mít vlastnost pro barvu a vlastnost pro množství paliva.
K tomu uvnitř třídy napíšeme vlastnost
$color a vlastnost $fuel:
<?php
class Car
{
// Zadáme vlastnosti (v podstatě proměnné třídy):
public $color; // barva automobilu
public $fuel; // množství paliva
}
?>
Nyní vytvořme metody naší třídy.
V PHP se metody, podobně jako obyčejné funkce, deklarují
pomocí klíčového slova function,
před kterým se píše klíčové
slovo public.
Jak již bylo zmíněno výše, náš automobil může jet, může zatáčet, může zastavovat. Vytvořme odpovídající metody v naší třídě:
<?php
class Car
{
public $color; // barva automobilu
public $fuel; // množství paliva
// Příkaz jet:
public function go()
{
// nějaký PHP kód
}
// Příkaz zatáčet:
public function turn()
{
// nějaký PHP kód
}
// Příkaz zastavit:
public function stop()
{
// nějaký PHP kód
}
}
?>
Vytvořili jsme výkres našeho automobilu. Nyní je třeba jít do továrny a vytvořit objekt této třídy (tedy konkrétní automobil).
V PHP se to provádí pomocí klíčového slova
new, za kterým se píše jméno třídy:
<?php
new Car;
?>
Avšak, pokud pouze vytvoříme objekt třídy - k ničemu to nepovede (je to stejné, jako kdybychom například deklarovali pole a nikam jej neuložili). Potřebujeme proměnnou pro ukládání tohoto objektu.
Nechť se tato proměnná jmenuje $myCar
- zapišme do ní vytvořený objekt:
<?php
$myCar = new Car;
?>
Po vytvoření automobilu lze přistupovat
k jeho vlastnostem. Přístup k nim probíhá
pomocí šipky ->. Pojďme nastavit
vlastnosti našeho objektu:
<?php
$myCar = new Car; // přikážeme továrně vyrobit automobil
// Nastavujeme vlastnosti objektu:
$myCar->color = 'red'; // natřeme na červeno
$myCar->fuel = 50; // natankujeme palivo
?>
Hotovo, náš automobil je vytvořen, natřen a natankován. Nyní mu můžeme dávat příkazy prostřednictvím metod tohoto automobilu.
Přístup k metodám také probíhá prostřednictvím šipky, ale na rozdíl od vlastnosti, za názvem metody následují kulaté závorky. Pojďme ovládat náš objekt:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>