PHP में OOP के ट्रेट विधियों की एक्सेस मॉडिफायर में परिवर्तन

ट्रेट के अंदर, विधियों के लिए कोई भी एक्सेस मॉडिफायर (यानी public, private या protected) उपयोग किया जा सकता है। हालांकि, आवश्यकता पड़ने पर, क्लास自身 में इस मॉडिफायर को बदला जा सकता है। इसके लिए use बॉडी में कीवर्ड as के बाद नया मॉडिफायर निर्दिष्ट करना होगा।

आइए एक उदाहरण से देखें। मान लीजिए कि हमारे पास निम्नलिखित ट्रेट है जिसमें एक प्राइवेट विधि है:

php<?php
  trait TestTrait
  {
    private function method()
    {
      return '!!!';
    }
  }
?>

आइए अपने ट्रेट को क्लास में कनेक्ट करें:

php<?php
  class Test
  {
    use TestTrait;
  }
?>

आइए क्लास में विधि को पब्लिक में बदलें:

php<?php
  class Test
  {
    use TestTrait {
      TestTrait::method as public;
    }
  }
?>

आइए क्लास के बाहर से पब्लिक विधि के कार्य की जांच करें:

php<?php
  $test = new Test;
  echo $test->method(); // '!!!' प्रिंट करेगा
?>