آموزش کامل PHP – قسمت 29: شئ گرایی 2

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

مرحله ششم:

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

$this->name = $new_name;

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

function get_name() {
	return $this->name;
}

this را مانند یک کلمه کلیدی در نظر بگیرید که به یک متد جاری اشاره می کند.

مرحله هفتم:

استفاده از کلاس در صفحه اصلی index.php

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

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

<?php include("class_lib.php"); ?>

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

مرحله هشتم:

معرفی و ساخت اشیاء

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

<?php include("class_lib.php"); ?>
<?php 
	$mohammad = new person();
?>

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

مرحله نهم:

کلمه کلیدی new

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

<?php include("class_lib.php"); ?>
<?php 
	$ali = new person();
	$mohammad = new person;
?>

هنگام ساختن یک شیء، اطمینان حاصل کنید که نام آن کلاس را بین علامت ‘ ‘ قرار ندهید.

مرحله دهم:

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

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

<?php include("class_lib.php"); ?>
<?php 
	$ali = new person();
	$mohammad = new person;
	$ali->set_name("ali safari");
	$mohammad->set_name("mohammad safari");
?>

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

دسترسی به داده های شئ

برای دسترسی به داده هایی که در شئ داریم از متد دریافت کننده get استفاده می کنیم. هنگام دسترسی به متدها و پروپرتی‌های یک کلاس باید از عملگر <- استفاده کنیم. به کد زیر توجه کنید:

<?php include("class_lib.php"); ?>
<?php 
	$ali = new person();
	$mohammad = new person;
 
	$ali->set_name("ali safari");
	$mohammad->set_name("mohammad safari");
 
	echo "ali's full name: " . $ali->get_name();
	echo "mohammad's full name: " . $mohammad->get_name(); 
?>

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

آموزش کامل PHP – قسمت 28: شیء گرایی 1

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

  • تفاوت بین ساخت یک اپلیکیشن پی‌اچ‌پی با روش معمولی و روش شی‌ءگرا (OOP).
  • اصول OOP چه هستند و چگونه از آن‌ها در پی‌اچ‌پی استفاده کنیم.
  • چه زمانی از OOP در اسکریپت‌های پی‌اچ‌پی خود استفاده کنیم.

شیء گرایی در php

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

مرحله اول:

مثل همیشه نرم افزار xampp یا wamp خود را باز کرده و در پوشه اصلی (htdocs در xampp و www در wamp) یک پوشه جدید بسازید و در آن فایل های index.php و class.php را ایجاد کنید. شیء گرایی در واقع استفاده از مفهوم کلاس در برنامه نویسی است. کلاس قالب کلی برای تعریف اشیاء است.

مرحله دوم:

کد های کلاس خود را در فایل class.php قرار می دهیم. برای تعریف کلاس از کلمه کلیدی class همراه با نام کلاس استفاده می کنیم و محتوای کلاس را مانند متد ها یا توابع در آکولاد باز و بسته قرار می دهیم.

<?php 
	class person {
 
	}
?>

از تفاوت های کلاس با توابع این است که محتوای کلاس می تواند متغیر ها یا توابع جداگانه ای باشد. هر یک از توابع موجود در کلاس را یک شیء (object) می نامند. داده ها یا متغیرها را نیز ویژگی یا خاصیت می گویند.

مرحله سوم:

افزودن متغیر

<?php 
	class person {
		var $name;
	}
?>

از متدها یا توابع یک کلاس به منظور اعمال تغییرات در داده‌ها و خواص (متغیرهای کلاس) استفاده می‌کنیم. توجه داشته باشید که در یک کلاس، متغیرها را Property (مشخصه‌ها یا ویژگی‌ها) می‌نامند و توابع نیز متدهای کلاس خوانده می‌شوند.

مرحله چهارم:

افزودن توابع یا متد ها

<?php 
	class person {
		var $name;
		function set_name($new_name) {
			$this->name = $new_name;
		}
		function get_name() {
			return $this->name;
		}
	}
?>

مرحله پنجم:

در مرحله قبل توابع set و get را به کلاس خود اضافه کردیم که جزء رایج شیء گرایی می باشند و در تمامی زبان های شیء گرا مانند جاوا و ++C نیز به همین شکل وجود دارند. بهتر است نام گذاری این توابع با نام متغیری که قصد تغییر آن را داریم یکسان باشد.