تبلیغات

کلاس های Anonymous در PHP (کلاس های ناشناس PHP)

کلاس های Anonymous در PHP (کلاس های ناشناس PHP)
هادی اکبرزاده
نوشته شده توسط هادی اکبرزاده

کلاس های Anonymous در PHP (کلاس های ناشناس PHP)


در PHP 7، ویژگی جدیدی با نام کلاس های Anonymous  یا ناشناس اضافه شده است که این نوع کلاس‌ها، همانند توابع ناشناحته (Closure) عمل می‌کنند!  شاید کمی گیج شده باشید، اما اجازه دهید ناشناس بودن را کمی شفاف‌تر کنم.

تنها تفاوت کلاس و تابع ناشناس این است که اسم ندارند و در همان لحظه‌ای که به آن‌ها نیاز داریم، ایجاد و مورد استفاده قرار می‌گیرند. بنابراین شما تنها در همان لحظه‌ی تعریف کلاس، یک نمونه از آن را ایجاد و مورد استفاده قرار می‌دهید؛ بدون این‌که نامی برای کلاس قرار دهید.

سینتکس تعریف کلاس ناشناس

  •  arguments: ورودی های متد سازنده
  • definition: بدنه‌ی کلاس که در همان لحظه تعریف می‌شود

همانطور که می‌بینید، تنها تفاوت در این است که نمونه را از روی کلیدواژه‌ی class می‌سازیم و اسمی از هیچ کلاسی نمی‌بریم! هم‌چنین می‌توانیم خروجی این نمونه را داخل یک متغیری نگه داریم و از آن مثل همیشه استفاده کنیم.

مثال

شما برای این که بتوانید یک کلاس عادی بسازید، از روند زیر استفاده می‌کنید:

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

در این‌جا ما کلاس را به صورت ناشناس ایجاد و بدنه‌ی آن را هم پیاده سازی کرده‌ایم. هم‌چنین، اصلا ورودی متد سازنده را هم صدا نزده‌ایم؛ چرا که در بدنه اصلا متد سازنده‌ای وجود ندارد!

همانند کلاس‌های عادی

تمام کارهایی که در کلاس‌های معمولی (همانند extends، implements و trait) انجام می‌دهیم، در کلاس‌های ناشناس نیز قابل انجام است و همانطور که در ابتدای مطلب گفته شده، تنها تفاوت نبود نام است.

شناسایی کلاس‌های ناشناس

متدی با نام isAnonymous، به کلاس ReflectionClass  خود PHP اضافه شده است تا از آن برای شناسایی این که فلان آبجکت از روی یک کلاس ناشناس می‌باشد یا نه، استفاده کنیم.

 

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

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

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

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

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

آن‌گاه که هرچیزی را به یک چشم دیدیم، حقیقت برایمان نابود می‌شود! باید توجه کنیم که خدا به ما دو چشم داده است!
Telegram

پاسخ دهید

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

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