کیهان
3 سال پیش توسط کیهان مطرح شد
4 پاسخ

یک سوال مربوط به trait

با سلام و خسته نباشید

خواستم بپرسم این که یک تابع داخل trait به صورت protected یا private تعریف کنیم چه معنی داره و به چه دردی میخوره شاید من درک درستی از Trait ها نداشته باشم
ممنون میشم راهنماییم کنید


ثبت پرسش جدید
Muhammad
تخصص : Back-End Developer
@muhammad 3 سال پیش مطرح شد
0

سلام
در واقع Trait برای به اشتراک‌گذاری بین کلاس‌هاست، و شما می‌تونید متدهای Private و Protected هم تعریف کنید، انگار همین متدهارو روی کلاس‌هایی که از این Trait استفاده می‌کنن نوشتید.
https://www.php.net/manual/en/language.oop5.traits.php


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 3 سال پیش مطرح شد
0

ما در PHP وراثت چند گانه نداریم
یعنی یه کلاس نمیتونه از چند کلاس ارث بری کنه
برای همین Trait ها رو داریم

اما متدهایی که داخل تریت ها تعریف میشند
از قوانین Encapsulation در شی گرایی PHP پیروی میکنند

پس متدها یا پراپرتی های protected و private به همون شکلی که در وراثت استفاده میشند، میتونند استفاده بشند


کیهان
تخصص : PHP programmer
@keyhan 3 سال پیش مطرح شد
0

@ali.bayat
من از فرمایش شما به این نتیجه رسیدم صرفا فقط از قوانین encapsulation پیروی می کنند ، پس فرقی نمیکنه که protected یا private یا public باشن ؟


فرهاد محبی پور
تخصص : برنامه نویس backend
@farhad3d.mohebbi 3 سال پیش مطرح شد
0

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


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام