آموزش برنامه نویسی و طراحی وب


این مقاله جز آموزش های برنامه نویسی نمی باشد و فهرستی برای آن موجود نیست

آموزش

java

trait ها در PHP

it3du  
2018-01-29 11:40:03  
129  
php  

trait ها در PHP

Trait چیست و کاربرد آن در PHP چیست ؟

 یک trait گروهی از متد ها می باشد که می توان آنها را در کلاس ها درج کرد. trait ها از نسخه 5.4 معرفی شدند تا امکان استفاده مجدد از کد های بزرگتر بدون شلوغ و پیچیده شدن برنامه میسر شود.

 

برای تعریف trait ابتدا کلمه کلیدی trait سپس نام trait و سپس بدنه trait را می نویسیم. شکل کلی ان به صورت زیر است

 

trait traitName {
    
    . . .
    
    public function myFunction1() { echo "Print from myFunction1()"; }

    . . .

}

 

استفاده از trait در سایر کلاس ها

حالا بعد از نوشتن trait می خواهیم از آن ها در کلاسی استفاده کنیم. برای این کار باید از کلمه کلیدی use استفاده کنیم. بعد از انجام این کار انگار تمامی متد های موجود در trait در کلاس وجود دارد و به صورت مستقیم قابل دسترس می باشند

 

به مثال زیر توجه کنید

 


trait myFunctions {
	public function func1() {
		echo "Print from func1";
	}
}


class MyClass {
	use myFunctions;
}


$obj = new MyClass();
$obj->func1();


 

نکته: یک کلاس می تواند از چندین trait استفاده کند. برای این کار باید نام trait ها را با ویرگول از هم جدا کرد

 

use trait1, trait2, trait3;

 

همچنین هر trait می تواند trait های دیگری داشته باشد.

 

Trait ها و ارث بری

زمانی که از trait ها در کلاسی استفاده می کنید که کلاس مورد نظر از کلاسی دیگر ارث بری میکند, متد موجود در trait لغو (override) خواهد شد. به مثال زیر توجه کنید

 

trait myTrait {

    public function print1() { echo "Print from print1() of MyTrait"; }

}

class MyParent {

    public function print1() {
        echo "Echo from print1() of Parent Class";
    }

}


class Child extends MyParent {

    use myTrait;

}

$obj = new Child();
$obj->print1(); // print1() of myTrait 

// out put: "Print from print1() of MyTrait trait"

 

حالا اگر در کلاس Child متد را override کنیم (با اینکه از trait هم در کلاس Child استفاده کرده باشیم) متد override شده در کلاس Child اجرا می شود.

 

مثال زیر را ببینید

 

trait myTrait {

    public function print1() { echo "Print from print1() of MyTrait"; }

}

class MyParent {

    public function print1() {
        echo "Echo from print1() of Parent Class";
    }

}


class Child extends MyParent {

    use myTrait;

	public function print1() {
		echo "Echo from print1() from Child class";
	}
		

}

$obj = new Child();
$obj->print1(); // print1() of Child class 

// out put: "Echo from print1() from Child class"

 

می توانید مثال های گفته شده را یک بار خودتان اجرا کرده و عملکرد کد را بهتر متوجه شوید

 

منبع: it3du.ir

 

به اشتراک بگذارید

فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   فیس نما   کلوب   فیس نما  

مطالب مرتبط

مطلب مشابهی وجود ندارد
دیدگاه کاربران

دیدگاهی وجود ندارد


دیدگاهی ارسال کنید

  نظر شما پس از تایید نویسنده نمایش داده می شود

  نظرات به صورت فینگلیش تایید و جواب داده نمی شوند

  برای وارد کردن کد برنامه نویسی متن بالای تکست باکس را مطالعه فرمایید

  گزینه captcha برای تشخیص انسان از ربات را حتما قبل از ارسال انتخاب کنید

  ایمیل شما در سایت منتشر نمی شود

  پر کردن فیلد های ستاره دار الزامی می باشد

نام *
ایمیل *
وب سایت

استفاده از کد HTML مجاز نمی باشد

متن های انتخاب شده را می توانید با دکمه p به پاراگراف تبدیل کنید

برای وارد کردن کد برنامه نویسی ابتدا متن مورد نظرتان را انتخاب کنید و سپس زبان مورد نظر خودتان را از طریق دکمه ها انتخاب کنید

محتوای دیدگاه *
bold italic underline p
java css c php hypertext ruby python c# c++ javascript
خروجی کامنت