PHP – ویژگیها (Traits)
PHP - ویژگیها (Traits) چیستند؟
PHP تنها از وراثت تکگانه پشتیبانی میکند: یک کلاس فرزند تنها میتواند از یک کلاس والد به ارث ببرد.
بنابراین، اگر یک کلاس نیاز به به ارث بردن چندین رفتار داشته باشد چه؟ ویژگیهای OOP این مشکل را حل میکنند.
ویژگیها (Traits) برای اعلام متدهایی استفاده میشوند که میتوانند در چندین کلاس استفاده شوند. ویژگیها میتوانند متدها و متدهای انتزاعی داشته باشند که میتوانند در چندین کلاس استفاده شوند و متدها میتوانند هر نوع دسترسی (public، private یا protected) داشته باشند.
ویژگیها (Traits) با استفاده از کلمه کلیدی trait
اعلام میشوند:
نحو (Syntax)
<?php
trait TraitName {
// some code...
}
?>
برای استفاده از یک ویژگی (Trait) در یک کلاس، از کلمه کلیدی use
استفاده کنید:
نحو (Syntax)
<?php
class MyClass {
use TraitName;
}
?>
مثال (Example)
توضیح مثال (Example Explained)
اینجا، ما یک ویژگی (Trait) به نام message1
اعلام میکنیم. سپس، یک کلاس به نام Welcome
ایجاد میکنیم. کلاس از ویژگی (Trait) استفاده میکند و تمام متدهای موجود در ویژگی در کلاس در دسترس خواهند بود.
اگر کلاسهای دیگری نیاز به استفاده از متد msg1()
داشته باشند، به سادگی از ویژگی message1
در آن کلاسها استفاده کنید. این کار باعث کاهش تکرار کد میشود، زیرا نیازی به اعلام مجدد همان متد بارها و بارها نیست.
PHP - استفاده از چندین ویژگی (Using Multiple Traits)
بیایید به یک مثال دیگر نگاه کنیم:
مثال (Example)
<?php
trait message1 {
public function msg1() {
echo "OOP is fun! ";
}
}
trait message2 {
public function msg2() {
echo "OOP reduces code duplication!";
}
}
class Welcome {
use message1;
}
class Welcome2 {
use message1, message2;
}
$obj = new Welcome();
$obj->msg1();
echo "<br>";
$obj2 = new Welcome2();
$obj2->msg1();
$obj2->msg2();
?>
توضیح مثال (Example Explained)
اینجا، ما دو ویژگی (Trait) به نامهای message1
و message2
اعلام میکنیم. سپس، دو کلاس به نامهای Welcome
و Welcome2
ایجاد میکنیم. کلاس اول (Welcome
) از ویژگی message1
استفاده میکند و کلاس دوم (Welcome2
) از هر دو ویژگی message1
و message2
استفاده میکند (ویژگیهای چندگانه با کاما جدا میشوند).
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام