تبلیغات

دسترسی به متد و پروپرتی های یک آبجکت از طریق نام آن در PHP

فرض کنید بخواهیم به متدها و یا فیلدهای یک آبجکتی، از طریق نام آن دسترسی داشته باشیم! یعنی چه؟! ابتدا به آبجکت زیر که متد test را صدا می‌زند دقت کنید:

حال فرض کنید بخواهیم همین متد را با در اختیار داشتن نام آن (که بصورت رشته‌ای است) اجرا کنیم! خب می‌گویید این که ساده است! به صورت زیر:

اما در اینجا توانایی داینامیک بودن وجود نداشته و اگر بجای test، اسم دیگری باشد، متد متناظر با آن اسم اجرا نخواهد شد! پس چه باید کرد؟! یعنی باید برای هر اسم یک شرط ایجاد کرد؟! 😐

راه حل

نیازی به ایجاد شروط مختلف برای انواع اسم‌‌ها وجود ندارد! 🙂

این کار در زبان‌های برنامه‌نویسی دیگر از جمله جاوا، به کمک رفلکشن‌ها صورت می‌گیرد که البته در PHP نیز وجود دارد؛ اما PHP بدلیل انعطاف جالبی که دارد، یک راه دیگری نیز در اختیار برنامه‌نویسان قرار داده است. اما آن را چه راهیست؟! خیلی ساده و سریع به‌صورت زیر:

چه شد؟!
یک متغیر تعریف کرده و عبارت test که نام متد می‌باشد را در آن نوشتیم. سپس این متغیر را بصورت مستقیم و در جلوی فلش قرار دادیم (به‌همراه علامت دلار آن)! اینگونه PHP، آن متدی را اجرا می‌کند که این نام را دارد! 😛

پس برای دسترسی به ویژگی‌های یک آبجکتی نیز می‌توان از این روش استفاده کرد؟!
بله! می‌توان دقیقا به‌صورت بالا برای پروپرتی‌ها نیز استفاده کرد که فقط بایستی پرانتزها را قرار ندهیم.

مزیت این قابلیت چیست؟!

واضح است که این قابلیت، توانایی دسترسی داینامیک را به ما می‌دهد که از آن می‌توان برای طراحی منعطف و سریع استفاده کرد! مثلا فرض کنید که وب‌سرویسی نوشته‌اید که اسم متدی را دریافت کرده و سپس آن را اجرا می‌کند؛ حال داخل کد بایستی یک switch یا شروط if بنویسید که این کار را انجام دهد؛ اما در صورت زیاد بودن تعداد متدها، کد شما نیز پیچیده‌تر شده و هربار بایستی متدی را پس از تعریف کردن، به این شروط نیز اضافه کرد! 😐

اگر متد وجود نداشت چه؟!

سوال جالبیست! اگر متد وجود نداشته باشد چه می‌شود؟! خب طبیعتا کد نوشته شده خطا خواهد داد 😀

پس راه حل چیست؟!
راه حل نیز بررسی وجود داشتن متد و سپس اجرای آن است! به چه صورت؟! (این لینک را مطالعه کنید) 🙂

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس و دانشجوی ارشد رشته شبیه‌ساز هوشمند - در حال نوشتن یه رمان (اگه خدا بخواد و تموم شه 😂)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه