Upataji wa Sifa Kupitia Uchawi katika OOP katika PHP
Mbinu ya kichawi inayofuata, ambayo tuta
chambua pamoja, inaitwa __get. Hii
mbinu hufanya kazi wakati wa kujaribu kusoma thamani
ya sifa ya faragha au iliyolindwa.
Ikiwa utatekeleza mbinu __get katika darasa
lolote, basi matajio yote kwa sifa zisizopo
au zilizofichwa yatawashiwa
na mbinu hii.
Wakati huo huo PHP automatikali itapeleka jina la sifa iliyohitajika kwenye kigezo cha kwanza cha mbinu hii, na thamani iliyorudishwa na mbinu hii itachukuliwa kama thamani ya sifa ambayo imehusiwa.
Yaelekea haijaeleweka vizuri bado jinsi hii
inavyofanya kazi, kwa hivyo hebu tuangalie kwa mfano
wa vitendo. Hebu tuseme tuna darasa Test kama hili
lenye sifa ya faragha na ya umma:
<?php
class Test
{
public $prop1 = 1; // sifa ya umma
private $prop2 = 2; // sifa ya faragha
}
?>
Hebu tuongeze kwenye darasa letu mbinu ya kichawi
__get, ambayo kwa mara ya kwanza itakuwa tu
inakarudi jina la sifa ambayo imehusiwa:
<?php
class Test
{
public $prop1 = 1;
private $prop2 = 2;
public function __get($property)
{
return $property; // tu rudishe jina la sifa
}
}
?>
Hebu tuangalie utendaji wa mbinu ya kichawi iliyoundwa. Tuweke wazi kwa aina tatu za sifa: kwa sifa ya umma, kwa sifa ya faragha na kwa sifa isiyopo:
<?php
$test = new Test;
// Tunaweka wazi kwa sifa ya umma:
echo $test->prop1; // itaonyesha 1 - yaani thamani ya sifa
// Tunaweka wazi kwa sifa ya faragha:
echo $test->prop2; // itaonyesha 'prop2' - jina la sifa
// Tunaweka wazi kwa sifa isiyopo:
echo $test->prop3; // itaonyesha 'prop3' - jina la sifa
?>
Kama unavyoona, mbinu yetu ya kichawi humenyuka kwa kushughulikia sifa za faragha na zisizopo lakini hupuuzia kushughulikia sifa za umma - zinaendelea kufanya kazi, kama zilivyokuwa zikifanya zamani.