ट्रेट्स में ट्रेट्स का उपयोग

ट्रेट्स, कक्षाओं की तरह, अन्य ट्रेट्स का भी उपयोग कर सकते हैं। आइए एक उदाहरण देखें। मान लीजिए कि हमारे पास दो विधियों वाला ऐसा ट्रेट है:

Trait1.php<?php
  trait Trait1
  {
    private function method1()
    {
      return 1;
    }
    
    private function method2()
    {
      return 2;
    }
  }
?>

मान लीजिए कि हमारे पास एक और ट्रेट है:

Trait2.php<?php
  trait Trait2
  {
    private function method3()
    {
      return 3;
    }
  }
?>

आइए ट्रेट Trait2 में ट्रेट Trait1 को कनेक्ट करें:

Trait3.php<?php
  trait Trait2
  {
    use Trait1; // पहले ट्रेट का उपयोग करें
    
    private function method3()
    {
      return 3;
    }
  }
?>

ऐसे कनेक्शन के बाद, Trait2 के अपनी विधियों के अलावा ट्रेट Trait1 की विधियाँ भी होंगी। आइए इसे सत्यापित करें: एक Test वर्ग बनाएं, इसमें ट्रेट Trait2 को कनेक्ट करें और सुनिश्चित करें कि हमारी कक्षा में पहले ट्रेट की विधियाँ, साथ ही दूसरे ट्रेट की विधियाँ दिखाई देंगी:

Test.php<?php
  class Test
  {
    use Trait2; // दूसरा ट्रेट कनेक्ट करें
    
    public function __construct()
    {
      echo $this->method1(); // पहले ट्रेट की विधि
      echo $this->method2(); // पहले ट्रेट की विधि
      echo $this->method3(); // दूसरे ट्रेट की विधि
    }
  }
?>
Задание 1

स्वयं मेरे जैसे ही ट्रेट बनाएं, और उन्हें Test वर्ग में कनेक्ट करें। इस वर्ग में getSum विधि बनाएं, जो कनेक्ट किए गए ट्रेट्स की विधियों के परिणामों का योग लौटाती है।