آموزش شی گرایی در PHP – متدهای جادویی و ثابت ها

آموزش شی گرایی در PHP

شی گرایی در PHP چندین متد جادویی (magic method) و ثابت (Constant) را در اختیار ما قرار داده تا خیلی از کارهای برنامه نویسی را با کد کمتر بنویسیم.

ولی چندتا نقاط ضعف مثل کاهش جزئی در عملکرد مشاهده می شود.

اختلاف نظرهای زیادی در مورد متدهای جادویی وجود دارد، بنابراین در این بخش از آموزش شی گرایی در PHP مواردی که اکثرا با آن موافق اند را توضیح می دهیم و از بخش ها دارای اختلاف صرف نظر می کنیم.

 

متد جادویی __construct()

نام متدهایی جادویی همشه با دو خط زیرین شروع می شود و متد __construct() هم از این قاعده استثنا نیست.

ما از __construct() به منظور انجام کاری بلافاصله بعد از ساخته شدن یک شی از کلاس استفاده می کنیم.

معمولا از متد سازنده (constructor) برای ست کردم مقادیر خاصیت (property) استفاده می کنیم.

در این مثال ساده، ما مقدار $model را به محض ساخته شدن آبجکت از کلاس، ست می کنیم. بنابراین داخل متد سازنده ما مقدار $model رو به اینصورت قرار میدیم:

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

خروجی:

Warning: Missing argument 1 for Car::__construct()

 

برای جلوگیری از این خطا، باید مقداری را به متد سازنده اختصاص بدید. بنابراین، مقدار “Mercedes” را به شی تازه ساخته شده اختصاص میدیم.

حالا، متد getCarModel() اضافه می کنیم تا مقدار داده شده به آبجکت که همان مدل خودرو هست را چاپ کند.

خروجی :

The car model is: Mercedes.

 

چطور یک متد سازنده بدون خطا بنویسیم؟

زمانی که قصد ساختن یک متد سازنده دارید، اگر هنگام ساخت آبجکت مقداری به آن پاس داده نشود، احتمال ایجاد خطا وجود دارد.

برای جلوگیری از آن، می توانیم یک مقدار پیش فرض را به خواص کلاس بدهیم.

عاقلانه ترین انتخاب برای مقدار پیش فرض پراپرتی می تواند صفر، رشته خالی یا حتی null باشد.

 

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

در مثال زیر، مقدار پیش فرض null را به $model اختصاص دادیم و اگر مقداری به متد سازنده پاس داده شود، آن را برای پراپرتی ست می کنیم، در غیر اینصورت، پراپرتی $model مقدار پیش فرض رشته “N/A” خواهد داشت.

از آنجا که ما آبجکت را بدون پاس دادن به پراپرتی $model ساختیم، هیچ اروری مشاهده نشد چون قبلا مقدار پیش فرضی به آن اختصاص دادیم

 

خروجی :

The car model is: N/A

 

از سمت دیگر، ببینیم چه اتفاقی می افتد اگر مقدار model را هنگام ساخت آبجکت مشخص کنیم.

در این مثال، هنگام ساختن آبجکت از کلاس مقدار Mercedes را برای $model ست کردیم.

خروجی:

The car model is: Mercedes

 

ثابت های جادویی

علاوه بر متدهای جادویی، زبان PHP چندین ثابت (Constant) جادویی را در اختیار ما قرار میدهد.

برای مثال، ثابت جادویی __CLASS__ (ثابت های جادویی، حروف بزرگ با دوتا خط زیر اول و آخر هستند) به منظور دریافت نام کلاس استفاده می شود.

 

بیاید نگاهی به مثال زیر بیاندازیم که از ثابت جادویی getCarModel() برای دریافت نام کلاس استفاده کریم:

خروجی :

The Car model is: Mercedes

 

ثابت های جادویی دیگر که ممکن است به کارتان بیاد :

__LINE__ دریافت شماره خط کد

__FILE__ دریافت آدرس کامل یا فایل کد اجرا شده فعلی

__METHOD__ دریافت نام متد فعلی

 

جمع بندی آموزش شی گرایی در PHP

در این بخش از آموزش شی گرایی در PHP، ما با متد و ثابت های جادویی آشنا شدیم و دیدیم که چطور می توان مقادیر پیش فرض را همزمان با ساخت آبجکت به پراپرتی ها داد.

در بخش بعدی آموزش، در مورد ارث بری و اصول شی گرایی که از تکرار بی رویه کد جلوگیری می کند، صحبت می کنیم.

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندورید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید
مطالب زیر را حتما بخوانید
دیدگاه کاربران

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

دوره های آموزشی