Utangulizi wa OOP katika PHP
Sasa tutajishughulisha na kusoma OOP katika PHP. Hebu tuchunguze mfano kutoka kwa maisha halisi, kisha tuubadilishe kuwa PHP.
Kama mfano, tuchukue gari. Lina magurudumu, rangi, aina ya kiunzi, ujazo wa injini na kadhalika. Zaidi ya hayo, dereva anaweza kukupa amri: endesha, simama, pinda kulia, kushoto na kadhalika.
Tunaweza kusema kwamba kuna darasa fulani la magari, lenye sifa za pamoja (yote yana magurudumu na yote yaweza kupokea amri).
Gari maalum, linalosimama barabarani - ni mwakilishi wa darasa hili, au, kwa maneno mengine, kitu (object) cha darasa hili. Kila kitu cha darasa hili kina sifa: idadi ya magurudumu, rangi, aina ya kiunzi na mbinu (methods): endesha, simama, pinda kulia, kushoto.
Kwa maneno mengine darasa lenyewe - ni mchoro, ambao kutokana nao kiwandani hutengenezwa magari. Kitu (kilichoundwa kutokana na darasa) - ni gari lenyewe, lililotengenezwa kulingana na mchoro huo.
Katika PHP darasa huundwa kwa kutumia neno kuu
class, ikifuatiwa na jina la
darasa hilo. Hebu tutengeneze darasa Car:
<?php
class Car
{
// hapa ndio code, yaani mchoro wa PHP wa gari
}
?>
Hebu sasa tuonyeshe kwenye mchoro wetu, kwamba gari yoyote iliyotengenezwa kulingana na mchoro huu, itakuwa na sifa ya rangi na sifa ya kiwango cha mafuta.
Ili kufanya hivyo, ndani ya darasa andika sifa
$color na sifa $fuel:
<?php
class Car
{
// Tuaweze sifa (kimsingi ni vigeu vya darasa):
public $color; // rangi ya gari
public $fuel; // kiwango cha mafuta
}
?>
Hebu sasa tutengeneze mbinu (methods) za darasa letu.
Katika PHP mbinu, kama kazi za kawaida, hutangazwa
kwa kutumia neno kuu function,
ambacho kabla yake huandikwa neno kuu
public.
Kama tulivyoelezea hapo juu, gari letu linaweza kuendesha, linaweza kugeuka, linaweza kusimama. Hebu tutengeneze mbinu zinazolingana katika darasa letu:
<?php
class Car
{
public $color; // rangi ya gari
public $fuel; // kiwango cha mafuta
// Amri ya kuendesha:
public function go()
{
// baadhi ya code za PHP
}
// Amri ya kugeuka:
public function turn()
{
// baadhi ya code za PHP
}
// Amri ya kusimama:
public function stop()
{
// baadhi ya code za PHP
}
}
?>
Tumeunda mchoro wa gari letu. Sasa inahitajika kwenda kiwandani na kutengeneza kitu cha darasa hili (yaani gari maalum).
Katika PHP hii inafanywa kwa kutumia neno kuu
new, baada ya which andikwa jina la darasa:
<?php
new Car;
?>
Hata hivyo, ikiwa tu utaunda kitu cha darasa - haitoshelezi chochote (ni sawa na, kwa mfano, kutangaza safu (array) na kusiweka mahali popote). Tunahitaji kutengeneza kutofautisha (variable) kwa ajili ya kuhifadhi kitu hiki.
Variable hii iitwe $myCar
- tuandike ndani yake kitu tulichounda:
<?php
$myCar = new Car;
?>
Baada ya kutengeneza gari, unaweza kushughulika
na sifa zake. Kushughulika nazo hufanyika
kupitia mshale ->. Hebu tuweke
sifa za kitu chetu:
<?php
$myCar = new Car; // tunaamuru kiwanda kutengeneza gari
// Tuaweze sifa za kitu:
$myCar->color = 'nyekundu'; // rangi nyekundu
$myCar->fuel = 50; // kiwango cha mafuta
?>
Yote, gari letu limeundwa, limepakwa rangi na kujazwa mafuta. Sasa tunaweza kukupa amri kupitia mbinu za gari hili.
Kushughulika na mbinu pia hufanyika kupitia mshale, lakini, tofauti na sifa, baada ya jina la mbinu andika mabano ya duara. Hebu tupe amri kitu chetu:
<?php
$myCar->go();
$myCar->turn();
$myCar->stop();
?>