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

php -
3 هفته پیش توسط فرهاد محبی پور آپدیت شد
آفلاین
user-avatar
کیهان ( 10744 تجربه )
3 هفته پیش
تخصص : PHP programmer

لینک کوتاه اشتراک گذاری

0

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

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

آفلاین
user-avatar
Muhammad ( 13210 تجربه )
3 هفته پیش
تخصص : Back-End Developer

لینک کوتاه اشتراک گذاری

0

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

آفلاین
user-avatar
علی بیات ( 419779 تجربه )
3 هفته پیش
تخصص : توسعه دهنده ارشد وب

لینک کوتاه اشتراک گذاری

0

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

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

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

آفلاین
user-avatar
کیهان ( 10744 تجربه )
3 هفته پیش
تخصص : PHP programmer

لینک کوتاه اشتراک گذاری

0

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

آفلاین
user-avatar
فرهاد محبی پور ( 44084 تجربه )
3 هفته پیش
تخصص : برنامه نویس backend

لینک کوتاه اشتراک گذاری

0

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

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.