آموزش PHP - جلسه بیست و دوم: شیء گرایی (بخش دوم)

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

مرحله ششم:

متغیر this$ 

به کد زیر توجه کنید:

در اینجا this$ در واقع یک متغیر درونی تلقی می‌شود که به شیء کنونی کلاس مورد نظر اشاره دارد. به عبارت دیگر، متغیر this$ یک متغیر مخصوص برای ارجاع‌های داخلی است. به منظور دسترسی به پروپرتی‌ها که در جلسه قبل در مورد آن‌ها توضیح دادیم، می‌توانید از this$ استفاده کنید و از همین طریق اقدام به صدا زدن متدها یا همان توابع درونی یک کلاس کنید. مجددا توجه شما را به کد زیر جلب می‌کنیم:

در حال حاضر بهتر است this$ را به عنوان یکی از کلمات کلیدی مخصوص شیءگرایی در پی‌اچ‌پی بشناسید. هنگامی که موتور پردازشی پی‌اچ‌پی به کلمه this$ برسد، می‌داند که چه کاری باید انجام دهد. خبر خوب اینکه شما هم به زودی با کمی تمرین دقیقا متوجه این ساختار خواهید شد و از آن لذت زیادی خواهید برد.

مرحله هفتم:

استفاده از کلاس ساخته شده در صفحه‌ اصلی پی‌اچ‌پی (index.php)

شما نباید هیچگاه در فایل‌های اصلی پروژه‌های خود، به صورت مستقیم اقدام به ساختن کلاس‌های مورد نظر کنید. اگر کلاس‌ها را به طور مستقیم در فایل‌های اصلی پروژه تعریف کنید این کار باعث می‌شود تا از هدف اصلی شیءگرایی در پی‌اچ‌پی دور شوید.

بهترین کار این است که همیشه برای هر کلاس یک فایل جداگانه php ایجاد کنید تا همه چیز بسیار با نظم و مرتب باشد. سپس در هر فایلی از پروژه پی‌اچ‌پی خود می‌توانید از کلاس‌های مدنظرتان استفاده کنید. برای استفاده از یک کلاس در سایر فایل‌های پی‌اچ‌پی، همانطور که احتمالا می‌دانید و بارها نیز به این موضوع اشاره کرده‌ایم، می‌توانید از دستورات include یا require بهره ببرید.

مجددا توجه شما را به کد زیر جلب می‌کنیم.

مرحله هشتم:

معرفی کردن/ساختن اشیاء

کلاس‌ها نقشه‌های کلی یا قالب‌های کلی برای اشیاء در پی‌اچ‌پی هستند. تا زمانی که شما instantiation (نمونه سازی) را انجام ندهید، در واقع کلاس‌های پی‌اچ‌پی به اشیاء مبدل نخواهند شد.

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

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

نکته: متغیر mojtaba$ در کد بالا یک مرجع برای شیء تازه ساخته شده‌ی person خواهد بود. در اینجا گفتیم که متغیر mojtaba$ یک مرجع است چراکه ما از همین مرجع به منظور کنترل و استفاده از اشیاء کلاس person بهره خواهیم برد.

اگر شما کد بالا را اجرا کنید، هیچ چیزی را در صفحه مشاهده نخواهید کرد. دلیل این امر این است که ما هنوز به پی‌اچ‌پی نگفته‌ایم که چه کاری با شیء تازه ساخته شده‌مان انجام دهد.

مرحله نهم:

کلمه کلیدی "new"

به منظور ساختن یک شیء خارج از یک کلاس، شما باید از کلمه کلیدی new استفاده کنید. هنگام ساختن و نمونه‌سازی یک کلاس، همانند مثال زیر، شما می‌توانید به صورت اختیاری، به نام کلاس کاراکترهای پرانتز را اضافه کنید. برای فهم بیشتر این موضوع شما می‌توانید در کد زیر مشاهده کنید که چگونه می‌توان چندین شیء را از یک کلاس مشابه ایجاد کرد.

بر اساس روش کارکرد موتور پی‌اچ‌پی، هر شیٔ در واقع ماهیت خود را دارد. اما این منطقی به نظر می‌رسد؟ کد زیر را مشاهده و به دقت آن را بررسی کنید.

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

مرحله دهم:

ست کردن خواص اشیاء

حال که دو شیء مجزا از کلاس person را با نام‌های mojtaba$ و miaad$ ساختیم، می‌توانیم پروپرتی‌های آن‌ها را نیز با استفاده از متدهای داخلی کلاس person که پیش از این ایجاد کرده بودیم، تنظیم کنیم.

لطفا به یاد داشته باشید که هر دو شیء mojtaba$ و miaad$ از یک کلاس مشابه ساخته شده‌اند، با این وجود پی‌اچ‌پی این دو را به عنوان دو شیء متفاوت می‌شناسد. به کد زیر توجه کنید:

مرحله یازدهم:

دسترسی به داده‌های شیء‌ها

حال ما از متدهای دریافت‌کننده استفاده می‌کنیم تا به داده‌هایی که در شیء‌های خود داریم، دسترسی داشته باشیم. این داده‌ها همان اطلاعاتی هستند که با استفاده از متدهای تنظیم‌کننده (ست کننده) در اشیاء ایجاد شده (mojtaba$ و miaad$) ذخیره کردیم.

هنگام دسترسی به متدها و پروپرتی‌های یک کلاس باید از عملگر <- استفاده کنیم. به کد زیر با دقت نگاه کنید.

نکته: توجه داشته باشید که عملگر <- در اینجا به عملگر <- در آرایه‌ها شباهتی ندارد.

 شما در تا به این لحظه، نیمی از مسیر یادگیری مبحث شیءگرایی را در پی‌اچ‌پی آموخته‌اید. بهتر است کمی استراحت کرده و سپس مباحث این جلسه و جلسه قبل را با دقتی بیشتر برای خود مرور کرده و آن‌ها را با استفاده از سرور مجازی Xampp بر روی رایانه شخصی خود تست کنید تا آموخته‌های خود را تثبیت کرده و شیءگرایی را بهتر درک کنید. بد نیست اشاره کنیم که شما در همین دو جلسه

  • یک کلاس پی‌اچ‌پی طراحی کردید
  • چندین شیء را بر اساس کلاس ساخته شده خود ایجاد کردید
  • داده‌های مورد نظرتان را در اشیاء ساخته شده وارد کردید
  • به داده‌های مورد نیاز در اشیاء ساخته شده دسترسی پیدا کردید

تا همینجا شما پایه و اساس شیءگرایی را در پی‌اچ‌پی فراگرفته‌اید. در جلسه‌ی بعدی ادامه مبحث شی‌ءگرایی را در زبان برنامه‌نویسی PHP پی می‌گیریم. 

برای تمرین سعی کنید یک کلاس دیگر بسازید که همانند آنچه در این دو جلسه ایجاد کردیم شامل متدها و پروپرتی‌های خاص خود باشد.




منبع این نوشته : https://www.zoomit.ir/
سایر مقالات :

آموزش PHP - جلسه اول معرفی و ابزارهای مورد نیازرفتن به مطلب
آموزش PHP - جلسه دوم، متغییرها و توضیحات در کدهارفتن به مطلب
آموزش PHP - جلسه سوم: عملگرها رفتن به مطلب
آموزش PHP - جلسه چهارم: آرایه ها رفتن به مطلب
آموزش PHP - جلسه پنجم: عبارات شرطی، دستور if رفتن به مطلب
آموزش PHP - جلسه ششم: حلقه‌ های While و Forرفتن به مطلب
آموزش PHP - جلسه هفتم: دستور Switch و آشنایی با Include و Require رفتن به مطلب
آموزش PHP - جلسه هشتم: توابع رفتن به مطلب
آموزش PHP - جلسه نهم: متغیرهای پیش فرض و فرم هارفتن به مطلب
آموزش PHP - جلسه دهم: پروژه ارسال ایمیل رفتن به مطلب
آموزش PHP - جلسه یازدهم: اتصال به بانک اطلاعاتی MySQLرفتن به مطلب
آموزش PHP - جلسه دوازدهم: درج اطالاعات در بانک اطلاعاتی MySQL رفتن به مطلب
آموزش PHP - جلسه سیزدهم: خواندن داده‌ها از بانک اطلاعاتی MySQLرفتن به مطلب
آموزش PHP - جلسه چهاردهم: ویرایش داده در بانک اطلاعاتی MySQLرفتن به مطلب
آموزش PHP - جلسه پانزدهم: حذف داده ها از بانک اطلاعاتی MySQLرفتن به مطلب
آموزش PHP - جلسه شانزدهم: Session و Cookieرفتن به مطلب
آموزش PHP - جلسه هفدهم: کار با فایل هارفتن به مطلب
آموزش PHP - جلسه هجدهم: کار با تاریخ و ساعت و تاریخ هجری شمسیرفتن به مطلب
آموزش PHP - جلسه نوزدهم: فیلترهای پی اچ پی (مقدماتی)رفتن به مطلب
آموزش PHP - جلسه بیستم: کار با رشته هارفتن به مطلب
آموزش PHP - جلسه بیست و یکم: شیء گراییرفتن به مطلب
آموزش PHP - جلسه بیست و دوم: شیء گرایی (بخش دوم)رفتن به مطلب
آموزش PHP: جلسه بیست و سوم: شیءگرایی (بخش سوم)رفتن به مطلب
آموزش PHP: جلسه بیست و چهارم: شیءگرایی (بخش پایانی)رفتن به مطلب