PHP-তে OOP-এ ট্রেইট নিয়ে কাজ করার সময় পদ্ধতির অগ্রাধিকার
যদি একটি ক্লাস এবং একটি ট্রেইটে একই নামের একটি পদ্ধতি থাকে, তাহলে ক্লাসের পদ্ধতিটি ট্রেইটের পদ্ধতিকে ওভাররাইড করবে:
<?php
trait TestTrait
{
// method নামের পদ্ধতি:
public function method()
{
return 'trait';
}
}
class TestClass
{
use TestTrait;
// method নামের একই পদ্ধতি:
public function method()
{
return 'test';
}
}
$test = new TestClass;
echo $test->method(); // আউটপুট হবে 'test' - ক্লাসের নিজস্ব পদ্ধতি কাজ করেছে
?>
যদি ক্লাসের নিজের এমন কোন পদ্ধতি না থাকে, কিন্তু ট্রেইটের পদ্ধতি এবং প্যারেন্ট ক্লাসের পদ্ধতির নামে দ্বন্দ্ব থাকে, তাহলে ট্রেইটের পদ্ধতিগুলির অগ্রাধিকার থাকে:
<?php
trait TestTrait
{
// method নামের পদ্ধতি:
public function method()
{
return 'trait';
}
}
// প্যারেন্ট ক্লাস:
class ParentClass
{
// method নামের পদ্ধতি:
public function method()
{
return 'parent';
}
}
// ক্লাসটি প্যারেন্ট থেকে method পদ্ধতিটি ইনহেরিট করে:
class TestClass extends ParentClass
{
use TestTrait;
}
$test = new TestClass;
echo $test->method(); // আউটপুট হবে 'trait', কারণ ট্রেইটের অগ্রাধিকার আছে
?>