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:

Test.php<?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:

Test.php<?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:

index.php<?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.