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

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

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

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

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

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

با ما همراه باشید تا در این جلسه ادامه ی مبحث قبل را ادامه دهیم.

در این جلسه :

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

توابع سازنده

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

PHP یک تابع خاص به نام ()construct__ برای تعریف توابع سازنده فراهم می کند. که ما می توانیم به تعداد دلخواه آرگومان ها را به تابع سازنده منتقل کنیم.

با توجه به مثال زیر از جلسه دوازدهم PHP تابع سازنده ایی برای کلاس Books ایجاد خواهد شد. که مقادیر price و title در زمان ایجاد شی مقداردهی می شود.

حال برای مقداردهی price و title نیازی به فراخوانی توابع مجزا نداریم. ما می توانیم ۲ متغیر عضو را در زمان ایجاد شی مقداردهی کنیم. مثال زیر را بررسی کنید.

خروجی کد بالا به شرح زیر است:

Physics for High School
Advanced Chemistry
Algebra
۱۰
۱۵
۷

تخریب کننده

همانند تابع سازنده ما می توانیم یک تابع مخرب با استفاده از ()destruct__ تعریف کنیم. ما می توانیم همه ی منابع را درون یک مخرب آزاد کنیم.

ارث بری

تعاریف کلاس پی اچ پی میتوانند به صورت اختیاری با استفاده از عبارت کلیدی extends از یک تعریف کلاس پدر ارث بری کنند.

به ساختار syntax آن از جلسه دوازدهم PHP توجه کنید.

تاثیر ارث بری این گونه است که کلاس فرزند ( و یا زیر کلاس یا کلاس مشتق ) مشخصه های زیر را دارد:

– به طور خودکار همه اعلان های متغیر کلاس پدر را دارد.

– به طور خودکار همه توابع عضو را همانگونه که در کلاس پدر وجود دارند را دارا می باشد. که ( به طور پیشفرض ) همانند همانگونه که در کلاس پدر هستند، کار می کنند.

به مثال زیر توجه کنید. مثال زیر از کلاس Books ارث بری کرده است و همچنین قابلیت های بیشتری را بر اساس خواسته ها اضافی می کند.

حال به غیر از توابع ارث بری شده، کلاس جدید دو تابع عضو بیشتر دارد.

شما در حال آموزش و یادگیری جلسه دوازدهم PHP می باشید.

Function Overriding

تعاریف تابع در کلاس های فرزند، تعاریف را با نام های مشابه در کلاس های پدر همپوشانی می کنند. در یک کلاس فرزند، ما می توانیم تعریف تابع ارث برده شده از کلاس پدر را تغییر دهیم.

 در مثال زیر توابع getPrice و getTitle همپوشانی شده اند تا مقادیری را برگردانند.

تفاوت بین public،private و protected در کلاس ها چیست؟

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

عکس زیر از جلسه دوازدهم PHP ، به صورت خلاصه تفاوت بین public، private و protected را به ما نشان می دهد.

دسترسی private , protected , public در شی گرایی PHP

Public (عمومی)

در این نوع از دسترسی، متغیر یا تابع در کلاس های دیگر و نمونه های ایجاد شده از کلاس قابل دسترسی است. تا به این جا تمامی مثال هایمان با public بوده است. درصورتی که نیاز به محدود کردن دسترسی به اعضای کلاس را داشته باشیم، باید از private (خصوصی) و یا protected (محافظت شده) استفاده کنیم.

Private (خصوصی)

در این نوع از دسترسی، متغیر یا تابع فقط در کلاسی که در آن تعریف شده است قابل دسترسی است. و درکلاسی که به ارث برده می شود قابل دسترسی نیست. و همچنین در کلاسی خارج از کلاس تعریف شده هم قابل دسترسی نیست. یک عضو کلاس می تواند با استفاده از کلمه کلیدی private قبل از اسم عضو خصوصی شود.

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

توجه داشته باشید در مثال بالا ، زمانی که کلاس MyClass توسط کلاس دیگری ارث بری شود، ()myPublicFunction و همچنین متغیر $driver قابل مشاهده هستند. اما کلاس ارث بری شده هیچ دسترسی ایی به ()myPrivateFunction و همچنین متغیر car$ نخواهند داشت. زیرا آن ها private هستند.

Protected (محافظت شده)

در این نوع از دسترسی، متغیر یا تابع، در کلاسی که در آن تعریف شده و کلاس هایی که از این کلاس ارث برده اند قابل دسترسی است. Property های protected شده، در خارج از این دو کلاس به هیچ عنوان در دسترس نمی باشند. یک عضو کلاس می تواند با استفاده از کلمه کلیدی protected قبل از نام آن prtotected شود.

با توجه به ساختار زیر از جلسه دوازدهم PHP نمونه ایی متفاوت از کلاس MyClass را میبینید.

تبریک میگم شما موفق شدید تا جلسه دوازدهم PHP را پشت سر بگذارید. مبحث شی گرایی تقریبا به اتمام رسیده است. اما چند نکته ی مهم در این مبحث باقی می ماند که همراهی شما را در جلسه بعد می طلبد. ? با ما همراه باشید.

?<< بزرگترین افسوس آدمی زمانیست که، می خواهد اما نمی تواند و یاد زمانی می افتد که می توانست اما نخواست. . . >> ☑️

برچسب ها : codepaz، php پیشرفته

    دیدگاه ها

  1. YourFriendPablo گفت:

    Great, I really like it! Youre awesome

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