PHP में OOP के ट्रेट विधियों की एक्सेस मॉडिफायर में परिवर्तन
ट्रेट के अंदर, विधियों के लिए कोई भी एक्सेस मॉडिफायर
(यानी public, private
या protected) उपयोग किया जा सकता है।
हालांकि, आवश्यकता पड़ने पर,
क्लास自身 में इस मॉडिफायर को
बदला जा सकता है। इसके लिए use बॉडी में
कीवर्ड as के बाद
नया मॉडिफायर निर्दिष्ट करना होगा।
आइए एक उदाहरण से देखें। मान लीजिए कि हमारे पास निम्नलिखित ट्रेट है जिसमें एक प्राइवेट विधि है:
<?php
trait TestTrait
{
private function method()
{
return '!!!';
}
}
?>
आइए अपने ट्रेट को क्लास में कनेक्ट करें:
<?php
class Test
{
use TestTrait;
}
?>
आइए क्लास में विधि को पब्लिक में बदलें:
<?php
class Test
{
use TestTrait {
TestTrait::method as public;
}
}
?>
आइए क्लास के बाहर से पब्लिक विधि के कार्य की जांच करें:
<?php
$test = new Test;
echo $test->method(); // '!!!' प्रिंट करेगा
?>