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

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

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"





Jak se ti článek líbil?

Komentáře (0)

Přidat komentář