تصویر شاخص جلسه سیزدهم PHP شی گرایی

جلسه سیزدهم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته

جلسه سیزدهم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته

در این مقاله از کدپز با جلسه سیزدهم PHP در خدمت شما هستیم.

در قسمت قبل در جلسه دوازدهم PHP مبحث شی گرایی را گسترش دادیم و به مباحثی همچون توابع سازنده و تخریب کننده، وراثت، همپوشانی توابع و همچنین تفاوت public، private و protected در کلاس ها پرداختیم.

سومین جلسه از PHP پیشرفته

در این جلسه:

با بیان چند نکته مبحث شی گرایی (oop) را به اتمام برسانیم. با ما همراه باشید.

ثابت ها (‌Constants)

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

با توجه به مثال بالا از جلسه سیزدهم PHP در این کلاس، RequiredMargin یک ثابت است. که با کلمه کلیدی const اعلام می شود و تحت هیچ شرایطی آن را به هیچ چیز غیر از ۱٫۷ تغییر نمی دهد. توجه داشته باشید که نام ثابت، پیشوند $ مشابه آنچه در مورد متغیرها به کار می رود، را ندارد.

فيلد ها و متد هاي ايستا (static)

كلمه كليدي static در برنامه نويسي شی گرا اهميت بسيار زيادي دارد. ما می توانیم با استفاده از فیلد ها و متدهای ایستاتیک به صورت مستقیم و بدون ایجاد هرگونه شئ از کلاس مربوطه دسترسی پیدا کنیم. عناصر ايستا مشابه يك عضو سراسري براي كلاس عمل مي كنند و تمام اشياء ايجاد شده از آن كلاس مي توانند به آن ها دسترسي پيدا كنند. به علاوه فيلد هاي ايستا هميشه آخرين وضعيت (مقدار) خود را حفظ مي کنند.

به مثال زیر توجه نمایید.

خروجی کد بالا از جلسه سیزدهم PHP :

Welcome
Sajjad
Sajjad

در مثال بالا در کلاس human یک فیلد و متد ایستا ایجاد شده است. در داخل متد های کلاس برای دسترسی به خاصیت ایستا باید از کلمه ::self استفاده کرد. اما در بیرون کلاس براي دسترسي به خاصيت هاي ايستا بايد اينگونه عمل كرد.    ::نام كلاس .

::parent و ::Self

از Self:: برای دسترسی به خاصیت ها و متد های استاتیک و همچنین ثابت ها استفاده می کنیم. از ::parent برای دسترسی به اعضا کلاس والد استفاده می کنیم.

 کلاس های abstract و interface در شی گرایی

کلاس‌های abstruct در php، کلاس‌هایی هستند که نمی‌توان از روی آن‌ ها شی ایجاد کرد و تنها می توان از آن ها ارث بری کرد. این نوع از کلاس ها با کلمه کلیدی abstract اعلام می شوند. هنگام ارث بری از یک کلاس abstract همه متدهایی که در کلاس پدر با کلمه abstract نشان گذاری شده اند بایستی در کلاس فرزند تعریف شوند. بعلاوه این متدها باید قابلیت مشابه یکسانی نیز داشته باشند. به مثال زیر  از جلسه سیزدهم PHP توجه نمایید.

توجه داشته باشید که تعاریف تابع درون یک کلاس abstract نیز باید توسط کلمه کلیدی abstract پیش برود. قانونی بودن تعاریف تابع انتزاعی در یک کلاس غیر انتزاعی قانونی نیست. داشتن توابع abstract درون یک کلاس غیر abstract قانونی نیست.

رابط ها (Interfaces)

جهت اعلان یک interface از کلیدواژه ی interface استفاده می کنیم. برای اینکه یک کلاس بتواند از interface ارث بری کند، لازم است از کلیدواژه ی implement استفاده شود. دستور استفاده از آن را در زیر مشاهده می کنید.

در مثال ، یک interface ساده برای کلاس هایی که کد مربوط به car را مدیریت می کنند، اعلان می کنیم. این interface تمامی کلاس های فرزند و مشتق شده از خود را مجبور به پیاده سازی متدهای انتزاعی ()setModel و ()getModel می نماید.

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

نکته :‌ تمامي متدهايي كه در يك واسط تعريف مي شوند بايد به صورت public باشند. كلاس ها ممكن است بيش از يك واسط داشته باشند در اين صورت نام واسط ها را با كاراكتر كاما (,) از همديگر جدا ميكنيم.

با پایان این بحث شی گرایی در جلسه سیزدهم PHP به اتمام میرسد.

سعی کنید تا تمرین هایی را انجام دهید تا این مبحث به بهترین شکل ممکن در حافظه ی شما جای بگیرد.

📝<<فرق هدف با آرزو اینه که دقیقا میدونی کجا رو نشونی بری. . . >> ☑️

برچسب ها : codepaz، self و parent در شی گرایی

دیدگاه تازه ای بنویسید