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

در این جلسه از آموزش php با پردیس وردپرس به بخش پایانی شئ گرایی در php می پردازیم.

مرحله‌ی هجدهم:

ارث بری یا استفاده مجدد از کدهای نوشته شده با ساختار OOP

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

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

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

  1. شما فقط یک بار باید کد مورد نظرتان را بنویسید.
  2. کد اولیه و اصلی مجددا استفاده خواهد شد و می‌توان از آن در هر تعداد کلاس دیگر، استفاده کرد.

از نظر مفهومی ارث‌بری شبیه به عملیات Include کردن است که در جلسات قبل به صورت مفصل آن را توضیح داده بودیم. به کد زیر توجه کنید:

// 'extends' is the keyword that enables inheritance
class employee extends person 
{
	function __construct($employee_name) {
		$this->set_name($employee_name);
	}
}

مرحله‌ی نوزدهم:

از آنجا که کلاس employee بر پایه‌ی کلاس person ایجاد شده است، بنابراین کلاس employee به طور خودکار تمامی متدهای عمومی و محافظت‌شده‌ و نیز تمامی پروپرتی‌های عمومی و محافظت‌شده‌ی کلاس person را دارا خواهد بود. به عبارت دیگر می‌توان گفت که کلاس employee در واقع نوعی دیگر از کلاس person است. به کد نمونه‌ی فوق توجه کنید تا مطلب بیان شده را بهتر درک کنید.

اما چگونه بدون اینکه متد ()set_name در کلاس employee تعریف شده باشد ما قادر به استفاده از آن خواهیم بود؟

ما قبلا متد ()set_name را در کلاس person تعریف کرده بودیم و با توجه به ویژگی‌ ارث‌بری در پی‌اچ‌پی، کلاس جدید می‌تواند از متدهای عمومی و محافظت‌شده‌ی کلاس پایه استفاده کند.

کلاس person در اینجا کلاس پایه یا کلاس والد خوانده می‌شود زیرا کلاس جدیدی که به نام employee ساختیم، به عنوان ساختار پایه از کلاس person بهره گرفته است. سسله مراتب همیشه در پروژه‌های مختلف پی‌اچ‌پی یک موضوع مهم است که باید به آن توجه ویژه داشته باشید. این امر به ویژه وقتی که پروژه‌ی شما پیچیده‌تر می‌شود بسیار کارا خواهد بود.

مرحله‌ی بیستم:

همانطور که در کد زیر نیز مشاهده می‌کنید، می‌توانیم متد get_name را در کلاس employee فراخوانی کنیم. کد زیر یک مثال بسیار خوب برای فهم بیشتر این مبحث است:

<?phpinclude("class_lib.php"); ?>
	<?php
		// Using our PHP objects in our PHP pages. 
		$mohammad = new person("mohammad safari");
		echo "mohammad's full name: " . $mohammad->get_name();
 
		$ali = new employee("ali safari");
		echo "---> " . $ali->get_name();
	?>

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

مرحله‌ی بیست‌ویک:

اووِر راید کردن متدها

برخی مواقع هنگام استفاده از ویژگی ارث‌بری، ممکن است نیاز به تغییر برخی از توابع کلاس پایه داشته باشید. به عنوان مثال، اجازه دهید متد ()set_name در کلاس employee را تغییر دهیم به نحوی که این متد در این کلاس نسبت کلاس person تغییر یابد. در این شرایط شما با تعریف کردن متدی مشابه در کلاس employee، در واقع نسخه‌هایی از متد ()set_name را از کلاس person، اووِر راید کرده‌اید. به کد زیر توجه کنید:

<?php
	class person 
	{
		protected function set_name($new_name) {
			if ($new_name != "Mohammad Two") {
				$this->name = strtoupper($new_name);
			}
		}
	} 
 
	class employee extends person 
	{
		protected function set_name($new_name) {
			if ($new_name == "mohammad safari") {
				$this->name = $new_name;
			}
		}
	}
?>

توجه داشته باشید که متد ()set_name اکنون و پس از تغییرات بالا در کلاس جدید employee با همین متد در کلاس پایه با همان person تفاوت دارد.

مرحله‌ی بیست‌ودوم:

گاهی ممکن است نیاز داشته باشید تا به نسخه‌ی اصلی متدی در کلاس پایه دسترسی داشته باشید که آن را در کلاس جدید اوور راید کرده‌اید. در مثال ما، متد ()set_name در کلاس employee اوور راید شده است. حالا قصد داریم از کد زیر استفاده کنیم:

person::set_name($new_name);

به منظور دسترسی به نسخه‌ی اصلی متد ()set_name که در کلاس والد (person) وجود دارد، باید از کدی شبیه به زیر استفاده کنیم:

<?php
	class person 
	{
		// explicitly adding class properties are optional - but 
		// is good practice
		var $name;	 
		function __construct($persons_name) {
			$this->name = $persons_name;
		 }
 
		 public function get_name() {
		 	return $this->name;
		 }
 
		 // protected methods and properties restrict access to 
		 // those elements.
		 protected function set_name($new_name) {
		 	 if ($this->name !=  "Mohammad Two") {
		 	 	$this->name = strtoupper($new_name);
		 	 } 
		}
	} 
 
	// 'extends' is the keyword that enables inheritance
	class employee extends person 
	{
		protected function set_name($new_name) {
		if ($new_name ==  "Stefan Sucks") {
			$this->name = $new_name;
		}
	 	else if ($new_name ==  "Johnny Fingers") {
			person::set_name($new_name);
		} 
	}
 
	function __construct($employee_name) 
	{
		$this->set_name($employee_name);
	}
}
?>

 استفاده از سیمبل‌ها (symbol)

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

'person::set_name()'

کد بالا به پی‌اچ‌پی می‌گوید که به دنبال متد ()set_name در کلاس person بگردد. علاوه بر این یک راه میانبر دیگر برای اشاره به کلاس والد کلاس کنونی وجود دارد. این راه میانبر در واقع استفاده از کلمه‌ی کلیدی parent است. به کد نمونه‌ی زیر توجه کنید:

protected function set_name($new_name) 
{	
	if ($new_name ==  "mohammad safari") {
		$this->name = $new_name;	
	 }	
	 else if ($new_name ==  "ali safari") {
		parent::set_name($new_name);	
	}	
}

 

آموزش کامل 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 – قسمت 19: حذف داده ها از بانک

در قسمت های قبلی آموزش با دستورات درج، ویرایش و خواندن از بانک اطلاعاتی mysql آشنا شدیم. در این قسمت از آموزش php با پردیس وردپرس با نحوه حذف اطلاعات از بانک آشنا خواهیم شد.

حذف داده ها از بانک

ابتدا پوشه پروژه cms را که در جلسات قبل ایجاد کردیم را باز کرده و پروژه را اجرا کنید. فایل edit.php را باز کرده کد های زیر را جایگزین کد های قبلی کنید:

<!DOCTYPE html>

<html dir="rtl" lang="fa-IR">

<head>

<title>ویرایش مطلب</title>

<meta charset="utf-8" />

</head>

<body style="font-family: tahoma; font-size:14px;">

<center>

<?php

include ("config.php");

//select all records from posts table

$get_query = mysql_query("SELECT * FROM `posts`");

//now using while for get each record sepratly and show it to web browser

while ($fetch_result = mysql_fetch_array($get_query))

{

$postTitle = $fetch_result['title'];

$postText = $fetch_result['text'];

$postId = $fetch_result['id'];

echo "<h2><a href=single.php?id=$postId>$postTitle</a> (<a href=editpost.php?id=$postId>ویرایش</a>) - (<a href=deletepost.php?id=$postId>حذف</a>)</h2>";

}

?>

</center>

</body>

</html>

تنها تغییری که در این فایل ایجاد کرده ایم این است که یک لینک ثابت برای حذف هر مطلب در کنار آن اضافه کرده ایم. لینک مقصد آن را نیز فایل deletepost.php قرار داده ایم. همچنین شناسه هر پست را نیز با متغیر id? به این فایل ارسال کرده تا به این صورت بتوانیم پست انتخاب شده را حذف کنیم.

حال یک فایل به نام deletepost.php ایجاد کرده و کد های زیر را در آن قرار دهید:

<!DOCTYPE html>

<html dir="rtl" lang="fa-IR">

<head>

<title>حذف پست</title>

<meta charset="utf-8" />

</head>

<body style="font-family: tahoma; font-size:14px;">

<center>

<?php

include ("config.php");

$pid = $_GET['id'];

//delete query

$get_query = mysql_query("DELETE FROM `posts` WHERE `id` = '$pid' ");

if($get_query){

echo "حذف مطلب مورد نظر با شناسه $pid با موفقیت انجام شد.";

}else{

echo "مشکلی در حذف پست مورد نظر رخ داده است.";

}

?>

</center>

</body>

</html>

کوئری مخصوص حذف داده‌ها را به صورت زیر نوشته‌ایم:

$get_query = mysql_query(“DELETE FROM ‘posts’ WHERE ‘id’ = ‘$pid’ “);

ابتدا کلمه کلیدی DELETE را نوشته و سپس FROM را می‌نویسم و پس از این دو کلمه نام جدولی که قصد حذف اطلاعات از آن را داریم می‌نویسیم. از آنجا که نام جدول ما posts است پس همین نام را نوشته و سپس مانند جلسات قبل از دستور WHERE استفاده می‌کنیم تا یک شرط برای اجرای این کوئری تعیین کنیم. پس از این کلمه اعلام می‌کنیم که تمام اطلاعات مربوط به رکوردی که id آن برابر مقدار ذخیره شده در pid است و در جدول posts قرار دارد را حذف کند. اگر این کوئری به درستی و با موفقیت انجام شود، متغیر get_query برابر true خواهد بود و اگر به درستی اجرا نشود و مشکلی در اجرای این کوئری پیش بیاید، مقدار ذخیره شده در متغییر get_query برابر false خواهد شد.

سپس با یک دستور شرطی if بررسی می‌کنیم که آیا کوئری حذف به درستی انجام شده یا خیر. اگر عملیات حذف انجام شده باشد پیغامی مبنی بر موفقیت آمیز بودن حذف مطلب مورد نظر نمایش خواهد یافت. در غیر این صورت پیام عدم حذف مطلب انتخابی نمایش می‌یابد.

 

آموزش کامل PHP – قسمت پنجم: دستورات شرطی

در قسمت چهارم آموزش php با آرایه ها در این زبان آشنا شدیم. در این قسمت از آموزش با عبارت های شرطی در پی اچ پی آشنا خواهیم شد.

دستور شرطی if

دستور if به معنی “اگر” همواره یکی از مهترین و پرکاربردترین دستورات در تمامی زبان های برنامه نویسی است. به وسیله این دستور شما می توانید کنترل شرطی در مواقع لزوم در کد نویسی داشته باشید. روش استفاده از این دستور به صورت زیر است.

<?php

$x1 = "20";

$x2 = "15";

if (x1 == "20") {

echo 'this is a';

}

else {

echo 'this is b';

} ?>

 همان طور که مشاهده می کنید شرط در پرانتز در مقابل if قرار می گیرد و دستوراتی که می خواهیم در صورت برقرار بودن شرط اجرا شود در آکولاد می نویسیم. دستوراتی که بعد از else می آیند در صورت برقرار نبودن شرط اجرا می شوند. خروجی دستورات بالا چاپ عبارت ‘this is a’ در مروگر است، حال شما برای تمرین کد را طوری تغییر دهید که عبارت مقابل else در مرورگر نمایش داده شود.

یک روش دیگر در استفاده از if به صورت زیر است:

<?php

$x = true;

$y = false;

if ($x) {

echo 'this is true';

}

else {

echo 'this is false';

} ?>

در مثال فوق به دلیل درست بودن شرط مقابل if عبارت ‘this is true’ در مرورگر نشان داده می شود. حال اگر شرط را با y$ عوض کنیم به دلیل نادرستی شرط عبارت مقابل else در مرورگر چاپ خواهد شد.

کنترل چند شرطی با else if

اگر در برنامه خود با شرایطی مواجه شدید که مجبور به بررسی چند حالت مختلف شوید و در صورت برقراری هر کدام از شرط ها خواستید دستوراتی را اجرا کنید. در این مواقع بهتر است از else if استفاده کنید. به مثال زیر توجه کنید:

<?php

$x1 = "20";

$x2 = "15";

$x3 = "10";

if (x1 == "20") {

echo 'this is a'; }

else if ($x2 =="15") {

echo 'this is b'; }

else if ($x3 == "10") {

echo 'this is c'; }

else {

echo 'this is null'; } ?>

همان طور که مشاهده می کنید در مقابل else if شرط های دیگر را به کار برده ایم.

شرط های تو در تو

if را به صورت تو در تو نیز می توانیم به کار بریم که با بزرگ تر شدن پروژه ها کاربرد پیدا می کند. این روش را با مثال ساده ای بیان می کنیم:

<?php

$name = "mohammad";

$family = "safari";

if ($name == "mohammad") {

if ($family == "safari") {

echo "full name is mohammad safari";

} }

else {

echo "not found";

} ?>

ابتدا شرط اول بررسی می شود و اگر درست بود شرط دوم نیز بررسی می شود و در صورت درستی نام کامل نمایش داده می شود. توجه داشته باشید که اگر هر کدام از دو شرط بر قرار نباشد کنترل برنامه به else رفته و عبارت “not found” نمایش داده می شود.

در php می توان چند شرط را همزمان نیز به کار برد مثلا شرط های مثال فوق را به صورت زیر نیز می توان نوشت:

if ($name == “mohammad” && $family == “safari”)

دستور فوق به معنای بر قراری همزمان دو شرط می باشد.

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

آموزش کامل PHP – قسمت چهارم: آرایه ها

در قسمت سوم آموزش php با آرایه ها در پی اچ پی آشنا شدیم. در این قسمت با آرایه ها کار می کنیم.

آرایه در زبان PHP

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

نحوه تعریف آرایه در PHP

برای تعریف متغییر در پی اچ پی از علامت $ مانند تعریف متغییر ها استفاده می کنیم با این تفاوت که کلمه کلیدی Array را بعد از علامت = به کار می بریم. به مثال زیر توجه کنید:

<?php

$name = Array (“pardiswp”,”msjob”,”admin”);

?>

همان طور که در مثال مشخص است ما سه نام را در آرایه ای به نام name ذخیره کردیم.

دسترسی به عناصر آرایه

برای دسترسی از عناصر آرایه از ایندکس گذاری استفاده می کنیم، به این معنی که عناصر آرایه را به ترتیب شماره گذاری می کنیم که این شماره گذاری در تمام زبا ن های برنامه نویسی از صفر شروع می شود. مثلا در مثال فوق ایندکس “msjob” عدد یک است یعنی عنصر یکم آرایه است. مثال:

<?php

$name = Array (“pardiswp”,”msjob”,”admin”);

echo $name[1];

؟>

دستور echo در مثال فوق کلمه “msjob” را چاپ می کند.

مقدار دهی به عناصر آرایه

برای مقدار دهی به عناصر آرایه از علامت <= به صورت زیر استفاده می کنیم:

<?php

$user = Array (“name” => “mohammad” , “lastname” => “safari” , “age” => “25”);

?>

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

$user [age];

نکته: در مثال دوم نیز همچنان می توان مانند مثال اول به عناصر دسترسی داشت.

یک روش دیگر برای مقدار دهی به آرایه ها به صورت زیر است:

<?php

$user [name] = “mohammad”;

$user [lastname] = “safari”;

$user [age] = “25”;

echo $user [age];

?>

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

آرایه های چند بعدی

آرایه هایی که در بالا بررسی کردیم یک بعدی بودند. یکی از بهترین قابلیت های php این است که می توان آرایه هایی با بی نهایت بعد در آن ایجاد کرد. فرض کنید اطلاعات چند کاربر را از  بانک اطلاعاتی دریافت کنیم، در این حالت بهتر است که اطلاعات هر نفر را در یک آرایه جداگانه قرار دهیم. در این جا از آرایه های چند بعدی استفاده می کنیم.

 

<?php

$users = Array (“user1” => array (“name” => “mohammad”, “family” => “safari”),

“user2” => array (“name” => “reza”, “family” => “karami”));

?>

همان طور که در کد بالا می بینید این بار یک آرایه به هر عضو داده می شود. در واقع ما اطلاعات دو کاربر را در آرایه ای به نام users قرار دادیم. این آرایه خود از دو آرایه دیگر تشکیل شده است. حال فرض کنید می خواهیم نام کاربر اول را در خروجی چاپ کنیم. فقط کافی است که از دو ایندکس استفاده کنیم.

echo $users [user1][name];

برای یادگیری کامل این قسمت تمام کد های فوق را در حالت های مختلف تمرین کنید.

پایان قسمت چهارم

آموزش کامل PHP – قسمت سوم: عملگرها

در قسمت دوم آموزش php با متغییر ها آشنا شدیم. در این قسمت با عملگرها در زبان پی اچ پی آشنا خواهیم شد.

عملگرها

عملگرها در واقع عملیات روی داده ها را انجام می دهند. برای مثال جمع یک عملگر است که کار آن عملیات جمع را روی دو عدد است.

عملگرهای اصلی

عملگرهای اصلی همان عملیات اصلی در ریاضیات هستند. عملگرهای اصلی در پی اچ پی شامل جمع (+)، تفریق (-)، ضرب (-)، تقسیم (/) و باقیمانده (%) می باشند. به کدهای زیر توجه کنید توضیحات به صورت کامنت به کدها اضافه شده است.

<?php

$num1 = 3;

$num2 = 4;

//addition;

echo $num1 + $num2;   //this will print 7

//subtraction

echo $num2 – $num1;   //this will print 1

//multipliction

echo $num1 * $num2;   //this will print 12

//divition

echo $num4 / $num1;   //this will print 1 (تقسیم صحیح)

?>

در برنامه فوق 4 عمل اصلی را با php انجام دادیم. عملگر بعدی باقیمانده است، این عملگر برای گرفتن باقیمانده تقسیم به کار می رود. به مثال زیر توجه کنید.

<?php>

//module

$num1 = 9;

$num2 = 2;

echo $num1 / $num2;   //this will print 1

?>

عملگرهای افزایشی و کاهشی

از این عملگرها برای افزایش و کاهش یک واحدی استفاده می شوند و با علامت ++ و __ نشان داده می شوند. به عنوان مثال ++x& معادل 1 + x$ است. درمورد — نیز به همین صورت است.

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

اگر می‌خواهید ابتدا به مقدار کنونی متغییر دسترسی یافته و سپس عملیات افزایش یا کاهش را انجام دهید باید از کدی مانند زیر استفاده کنید و عملگرهای مورد بحث را پیش از نام متغییر بکار بگیرید:

<?php

&x = 1;

echo ++$x;  //ابتدا یک واحد به متغییر افزوده شده و سپس در خروجی چاپ می شود، عدد 2 در خروجی چاپ می شود

echo “<br>”;

echo $x;  //عدد 2 در خروجی چاپ می شود

?>

عملگرهای انتساب

این نوع عملگرها برای انتساب یک مقدار به متغییرها استفاده می شود. یکی از این عملگرها = است که پیشتر در مثال ها از آن استفاده کردیم. از دیگر عملگرهای انتساب به =+ و =- می توان اشاره کرد که کارکرد آن ها به صورت زیر است.

<?php

$num1 = 90;

echo $num1 += 50;  //this is same $num1 = $num1 + 50

echo $num1;  //this will print 140

?>

در کد بالا ابتدا مقدار 90 را به متغیر num1 اختصاص دادیم. سپس با استفاده از عملگر اختصاص دادن =+ مقدار 50 را به متغیر num1 اضافه و نتیجه را مجددا در خود متغیر ذخیره کردیم. در نهایت با دستور echo مقدار نهایی num1 را در مرورگر نمایش دادیم. عملگرهای انتساب به شرح زیر هستند:

 
عملگر کارکرد توضیح
$x += $y $x = $x + $y افزایشی
$x -= $y $x = $x – $y کاهشی
$x *= $y $x = $x * $y ضرب
$x /= $y $x = $x / $y تقسیم
$x %= $y $x = $x % $y باقی مانده

عملگرهای مقایسه ای

از این نوع عملگرها برای مقایسه دو داده استفاده می‌شود. این عملگرها خروجی دو حالته دارند بدین معنا که پس از انجام مقایسه یا مقدار صحیح (true) یا مقدار غلط (false) را باز می‌گردانند. در جدول زیر می‌توانید این عملگرها و کاربرد آن‌ها را ببینید:

عملگر نام مثال نتیجه
== برابری $x == $y اگر مقدار x و y برابر باشد true را برمی‌گرداند
=== یکسان $x === $y اگر مقدار x و y برابر و نوع آن‌ها نیز یکی باشد true را برمی‌گرداند
=! عدم برابری $x != $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
<> عدم برابری $x <> $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
==! عدم یکسان بودن $x !== $y اگر مقدار x و y برابر نباشد و نوع آن‌ها نیز یکی نباشد true را برمی‌گرداند

پایان قسمت سوم

آموزش کامل PHP – قسمت دوم: توضیح و متغیرها

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

دستور echo

دستور اکو برای چاپ خروجی در php به کار می رود، یعنی خروجی این دستور در مروگر کاربر نمایش داده می شود. یک روش استفاده از این دستور این است که اطلاعاتی که میخواهیم کاربر ببیند را در داخل دابل کوتیشن (“) یا تک گوتیشن (‘) در مقابل این دستور می نویسیم و یک سیمی کولن (;) بعد از آن قرار می دهیم. در php در انتهای هر دستور سیمی کولن قرار می دهیم. مثال:

<?php

echo “قسمت دوم آموزش پی اچ پی در پردیس وردپرس “;

?>

آنچه که بین دابل کوتیشن قرار گرفته در مرورگر نمایش داده می شود. علاوه بر متن می توانیم کدهای html را نیز در دستور echo به کار ببریم.

<?php

echo “قسمت دوم آموزش پی اچ پی در پردیس وردپرس <br>خط بعدی<b>متن ضخیم</b><i>متن ایتالیک</i>”;

?>

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

متغیرها

مفهوم متغیر در برنامه نویسی در واقع فضاهایی از حافظه است که برای ذخیره کردن داده ها در برنامه از آن استفاده می کنیم. متغیر را می توانیم مانند یک ظرف خالی در نظر بگیریم که در php هر نوع داده ای را در خود جای می دهد. به این معنی که بر خلاف دیگر زبان های برنامه نویسی در این جا لازم نیست برای هر نوع داده متغیری جداگانه در نظر بگیریم. یک متغیر تعریف می کنیم و هر نوع داده ای که می خواهیم در آن ذخیره می کنیم.

حال به چگونگی تعریف و استفاده از متغیرها می پردازیم. برای متعریف متغیرها باید ابتدا علامت $ را نوشته و پس از آن نام متغیر مورد نظر را بنویسید. دقت کنید در نام گذاری متغیرها حروف بزرگ و کوچک با یکدیگر فرق دارند، یعنی متغیری با نام var$ با متغیری با نام Var$ تفاوت دارد و پی‌اچ‌پی در واقع آن‌ها را دو متغیر جدا از هم می‌داند.

<?php

// متغیر رشته ای

$var1 = “pardiswp”;

// متغیر عدد صحیح

$var2 = 123;

// متغیر اعشاری

$var3 = 1.222;

// متغیر صحیح یا غلط

$var4 = true;

?>

 نکته: در کد فوق از توضیحات استفاده شده، آنچه که بعد از علامت // قرار گرفته در همان خط جاری به عنوان کد php پردازش نمی شود و می توان از آن برای توضیحات در کدها استفاده نمود. برای توضیحات چند خطی می توانید آن را دربین علامت / و ستاره مانند /* توضیحات */  قرار دهید.

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

چاپ متغیرها

برای چاپ متغیرها نیز می توان از دستور اکو استفاده کرد. به کدهای زیر توجه کنید.

<?php

// خط زیر یک متغیر رشته ای است

$var = “عبارت مورد نظر”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

echo $var;

// خط زیر کد اچ تی ام الی است که باعث رفتن به خط جدید در مرورگر می شود

echo “<br>”;

// کد زیر مقدار متغیر را در مرورگر نمایش می‌دهد

echo $newVar;

echo “<br>”;

echo $anotherVar;

?>

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

<?php

//  خط زیر یک متغیر رشته ای است

$var = “عبارت موجود در متغیر اول”;

// خط زیر یک متغیر عددی است

$newVar = 123;

// خط زیر یک متغیر از نوع صحیح یا غلط است

$anotherVar = true;

// کد زیر باعث چاپ متن و متغیر در کنار یکدیگر خواهد شد

echo “مقدار متغیر اول: $var”;

echo “<br>”;

echo “مقدار متغییر دوم: $newVar مقدار متغیر سوم: $anotherVar”;

?>

کد را اجرا کنید خواهید دید که به جای نام متغیر مقدار آن در مرورگر نمایش داده می شود.

پایان قسمت دوم

برای یادگیری بهتر کدها و حالت های مختلف را تمرین کنید و اگر مشکلی داشتید سوالات خود را در بخش نظرات مطرح کنید.

آموزش کامل PHP – قسمت اول: مقدمه و نصب

مقدمه

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

نصب + ابزارهای مورد نیاز

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

برای ایجاد یک سرور محلی روی کامپیوتر شخصی برنامه هایی وجود دارد که دو مورد آن ها بیشتر مورد استفاده است : زمپ و ومپ.

xampp در ویندوز، لینوکس یا مک قابل استفاده است و wamp هم برای ویندوز مناسب می باشد. ما ادر این آموزش از زمپ استفاده خواهیم کرد و هیچ فرقی ندارد که از کدام برنامه استفاده کنید.

ابتدا جدیدترین نسخه برنامه Xampp با توجه به سیستم عامل خود را از اینجا دانلود کنید.

صفحه دانلود زمپ

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

سپس نرم افزار را اجرا کرده و دکمه استارت جلوی گزینه های Apache و MySql را بزنید، شکل زیر را مشاهده می کنید.

صفحه شروع زمپ

اگر مشکلی وجود نداشته باشد شکل فوق را مشاهده می کنید و به این ترتیب کامپیوتر شما تبدیل به یک سرور محلی شده که می‌تواند اسکریپت‌های نوشته شده به زبان php را براحتی اجرا کند. علاوه بر این امکان استفاده از بانک اطلاعاتی مای اسکیوال نیز برای شما فراهم شده.

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

هاست محلی

اگر همه چیز را درست انجام داده باشید تصویری مشابه فوق را مشاهده می کنید و می توانید اولین برنامه خود به زبان php را بنویسید.

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

اولین پروژه در php

خب تا اینجا شما سیستم خود را برای برنامه نویسی php آماده کردید، حال نیاز به یک محیط برای کد نویسی دارید که تفاوتی ندارد در چه محیطی کد ها نوشته شوند ولی ما ++NotPad را به شما پیشنهاد می کنیم که می توانید آن را از اینجا دانلود کنید.

پس از نصب آن را بازکرده و به منوی language رفته و مطابق شکل زیر PHP را انتخاب کنید.

ویرایشگر پی اچ پی

حالا نوت پد شما برای برنامه نویسی به زبان پی اچ پی آماده است.

شروع برنامه نویسی PHP

ابتدا باید بدانید که تمام فایل های نوشته شده به زبان پی اچ پی در پوشه ریشه سرور محلی شما ( مثلا: C:/xampp/htdocs ) قرار داشته باشند. ریشه سرور شما در رایانه‌تان پوشه htdocs است که خود در زیر پوشه‌ی Xampp قرار دارد. دقت کنید اگر هنگام نصب Xampp مسیر نصب آن را تغییر داده باشید باید به محلی که xampp را درآن نصب کردید بروید. سایر پوشه های زیر شاخه xampp را دستکاری نکنید تا مشکلی به وجود نیاد، بهتر است برای هر پروژه فولدری جداگانه در نظر بگیرید.

ایجاد اولین پروژه

به مسیر ریشه یا همان پوشه htdocs رفته و پوشه ای به نام مثلا hello ایجادکنید، حال ++NotPad را باز کرده و کدهای زیر را درآن وارد کنید و فایل را با پسوند php. ونام مورد نظرتان در مسیر hello ذخیره کنید.

<?php echo “Hello This Is Learning PHP From Pardiswp.com!”; ?>

نام فایل ما test.php است و با آدرس http://127.0.0.1/hello/test.php در مروگر قابل اجراست. خروجی آن عبارت

!Hello This Is Learning PHP From Pardiswp.com در مرورگر است. حال به چند نکته در مورد کدنویسی می پردازیم:

  • فایل های نوشته شده به زبان پی اچ پی باید با پسوند php. ذخیره شوند.
  • کدهای زبان پی اچ پی با تگ php?> شروع و با تگ <? خاتمه می یابند.
  • هر چیزی که بین این تگ ها قرار داشته باشد سرور آن را به عنوان دستورات php در نظر گرفته و پردازش می کند.
  • هر چیزی که خارج از این برچسب ها نوشته شود عینا در مرورگر نشان داده می شود که می تواند متن ساده، کد html و یا css باشد.

بسیار خب تا این جا شما قدم اول برای برنامه نویسی به زبان php را برداشته اید، در جلسات آینده با پردیس وردپرس همراه باشید تا شما را رسما وارد دنیای پی اچ پی کنیم. این دوره آموزشی از پایه شروع شده و با تمرین و پروژه محور خواهد بود.