ট্রেইটগুলিতে ট্রেইট ব্যবহার
ক্লাসের মতো, ট্রেইটগুলিও অন্য ট্রেইট ব্যবহার করতে পারে। আসুন একটি উদাহরণ দিয়ে দেখি। ধরুন আমাদের এখানে দুটি পদ্ধতি সহ এমন একটি ট্রেইট রয়েছে:
<?php
trait Trait1
{
private function method1()
{
return 1;
}
private function method2()
{
return 2;
}
}
?>
ধরুন আমাদের আরও একটি ট্রেইট রয়েছে:
<?php
trait Trait2
{
private function method3()
{
return 3;
}
}
?>
আসুন Trait2 ট্রেইটটিতে
Trait1 ট্রেইটটি সংযোগ করি:
<?php
trait Trait2
{
use Trait1; // প্রথম ট্রেইট ব্যবহার করছি
private function method3()
{
return 3;
}
}
?>
এইরকম সংযোগ করার পরে, ফলাফল হবে যে Trait2
এর নিজস্ব পদ্ধতিগুলি ছাড়াও Trait1 ট্রেইটের
পদ্ধতিগুলিও থাকবে। এটা পরীক্ষা করা যাক: একটি
Test ক্লাস তৈরি করি, এতে Trait2 ট্রেইটটি
সংযোগ করি এবং নিশ্চিত করি যে আমাদের ক্লাসে
প্রথম ট্রেইটের পদ্ধতিগুলির পাশাপাশি
দ্বিতীয় ট্রেইটের পদ্ধতিগুলিও উপস্থিত হবে:
<?php
class Test
{
use Trait2; // দ্বিতীয় ট্রেইট সংযোগ করছি
public function __construct()
{
echo $this->method1(); // প্রথম ট্রেইটের পদ্ধতি
echo $this->method2(); // প্রথম ট্রেইটের পদ্ধতি
echo $this->method3(); // দ্বিতীয় ট্রেইটের পদ্ধতি
}
}
?>
নিজে আমার মতো একই ট্রেইট তৈরি করুন
এবং সেগুলি Test ক্লাসে সংযোগ করুন।
এই ক্লাসে একটি getSum পদ্ধতি তৈরি করুন,
যা সংযুক্ত ট্রেইটগুলির পদ্ধতিগুলির ফলাফলের যোগফল প্রদান করে।