PHP में OOP के कई ट्रेट्स

एक क्लास में एक नहीं, बल्कि कई ट्रेट्स का उपयोग किया जा सकता है। इसी में उनका लाभ इनहेरिटेंस के मुकाबले प्रकट होता है। उपयोग के लिए आवश्यक क्लास में ट्रेट्स को कीवर्ड use के बाद कॉमा से अलग करके निर्दिष्ट किया जा सकता है।

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

Helper1.php<?php
  trait Helper1
  {
    private $name;
    
    public function getName()
    {
      return $this->name;
    }
  }
?>

दूसरा:

Helper2.php<?php
  trait Helper2
  {
    private $age;
    
    public function getAge()
    {
      return $this->age;
    }
  }
?>

अपने ट्रेट्स को क्लास में उपयोग करें:

User.php<?php
  class User
  {
    use Helper1, Helper2; // ट्रेट्स कनेक्ट करें
    
    public function __construct($name, $age)
    {
      $this->name = $name;
      $this->age = $age;
    }
  }
?>
Задание 1

3 ट्रेट्स बनाएं जिनके नाम Trait1, Trait2 और Trait3 हों। पहले ट्रेट में एक मेथड method1 हो, जो 1 लौटाता हो, दूसरे ट्रेट में - मेथड method2, जो 2 लौटाता हो, और तीसरे ट्रेट में - मेथड method3, जो 3 लौटाता हो। ये सभी मेथड्स प्राइवेट हों।

Задание 2

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