PHP OOP: Základy objektového programování – metody

06.06.2018 napsal Hanz (update: 17.09.2018)

PHP OOP: Základy objektového programování – metody

Aby seriál o objektově orientovaném programování v PHP dával nějaký smysl, tak je třeba logicky tento díl věnovat metodám a vysvětlení pseudo proměnné $this se šipkou...

PHP OOP - co je to metoda?


Metoda (function) představuje v objektově orientovaném programování funkce daného objektu a určuje jeho chování. Prakticky se k metodám přístupuje přes danou třídu a ve formátu $objekt->metoda($pa­rametry).

PHP OOP - co je to $this?


V objektově orientovaném programování v PHP je $this referencí k volanému (aktuálnímu) objektu, jedná se o tzv. pseudo proměnnou. Proměnná $this je dostupná když je metoda volána mezi objektovým kontextem.

PHP OOP - jak vytvořit metodu?


Příklad na třídě Zelenina


Uvedeme si opět rychlý příklad na okurce (objekt třídy Zelenina), který řekne více = vytvoříme metodu cenaOkurky, která vypočítá cenu prostým znásobením hmotnosti cenou.


class Zelenina //třída zelenina
{
public $hmotnost;
public $cena;

public function cenaOkurky()
{
$cena = $this->hmotnost * $this->cena;
echo $cena;
return $cena;
}
}


Pro výpočet je tedy třeba vytvořit nový objekt $okurka třídy Zelenina a nastavit mu atributy $hmotnost a $cena.
 
$okurka = new Zelenina();
$okurka->hmotnost = 500;
$okurka->cena = 0.02;
$okurka->cenaOkurky();


Když toto všechno uložíme, tak PHP skript vrátí, že cena okurky je 10 Kč.

PS: V klasickém procedurálním programování byste patrně vytvořili funkci function cenaOkurky($hmotnost,$cena) a dosadili přes proměnné hodnoty = vidíte ten rozdíl?

Příklad na třídě Letadla



Ve druhém příkladu si vytvoříme ve třídě Letadla jednoduchou metodu dobaLetu() pro výpočet doby letu na danou vzdálenost.


class Letadla //třída Letadla
{
public $oznaceni;
public $rychlost;
public $vzdalenost;

public function dobaLetu()
{
$doba = $this->vzdalenost / $this->rychlost;
echo 'Stroj ' . $this->oznaceni . ' ulétne ' . $this->vzdalenost . ' km za ' . $doba . ' hodin.';
return $doba;
}

}


Pro získání doby letu stačí novému objektu $stihacka třídy Letadla nastavit atributy = $oznaceni, $rychlost a $vzdalenost.

 
$stihacka = new Letadla();
$stihacka->oznaceni = 'F-16';
$stihacka->rychlost = 2124;
$stihacka->vzdalenost = 40003;
$stihacka->dobaLetu();


Výstupem z tohoto PHP skriptu bude:
"Stroj F-16 ulétne 40003 km za 18.833804143126 hodin"





Vaše reakce na článek PHP OOP: Základy objektového programování – metody

Napsat komentář k článku

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace