PHP درست است که سعی کرده است از برنامه نویسی شی گرا پشتیبانی کند اما نتوانسته است به طور کامل قوانین برنامه نویسی شی گرا را پیاده کند.

Overloading توابع و سازنده کلاس ها یک مثال از این کمبود ها در PHP هست.

اما برای اینکه بتوان در PHP این کمبود را جبران کرد تکنیک جالبی وجود که در ادامه به همراه کد توضیح اش آورده شده است.

تعریف بیش از دو سازنده برای کلاس در PHP

تکه کد بالا کلاس User را نشان می دهد.

برای اینکه این کلاس بیشتر از 2 تابع سازنده داشته باشد، از دو تابع

()func_get_args برای گرفتن پارامتر هایی که به شی از نوع کلاس User در حین فراخوانی پاس داده می شوند و

()func_num_args برای گرفتن تعداد پارامترهایی که پاس داده شده اند،

استفاده می کنیم.

بنابراین به راحتی می توان متناسب با تعداد پارامتر ها توابعی را تعریف کرد.

در مثال بالا اگر دقت کنید تابع construct1() هیچ پارامتری را نمی پذیرد و همان سازنده پی فرض است و

در تابع construct2() اگر دقت کنید یک پارامتر را به عنوان ورودی تابع در نظر می گیرد.

 

پاسخ دهید

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

شما می‌توانید از این دستورات HTML استفاده کنید: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>