ট্রেইটগুলিতে ট্রেইট ব্যবহার

ক্লাসের মতো, ট্রেইটগুলিও অন্য ট্রেইট ব্যবহার করতে পারে। আসুন একটি উদাহরণ দিয়ে দেখি। ধরুন আমাদের এখানে দুটি পদ্ধতি সহ এমন একটি ট্রেইট রয়েছে:

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 পদ্ধতি তৈরি করুন, যা সংযুক্ত ট্রেইটগুলির পদ্ধতিগুলির ফলাফলের যোগফল প্রদান করে।