انواع دستورات PHP
در زبان برنامهنویسی PHP یکسری دستورات کلیدی تعریف شده است که با شناخت آنها می توان توانایی برنامه نویسی خود را بالا برده و کیفیت برنامه خود را بهبود دهیم. تعدادی از این دستورات در فصل قبل توضیح داده شده است.و تعدادی نیز در فصل بعد توضیح داده می شود.
این دستورات در گروههای زیر تقسیم بندی می شوند.
IF,Switch, عملگر ?
For, Whie, Foreach,Do While
List
Include, Include_once,Require, Require _once
Echo , Print , Printf , Print_r
- دستور شرطی IF (If/Then Statements) :
جهت مقایسه عملوندها و اعمال دستورات و نتیجه گیری از دستور شرطی If استفاده میگردد . این دستور یکی از ساده ترین دستورات جهت انجام مقایسات میباشد.
ساختار این دستور همراه با سه مثال در زیر آورده شده است .
ساختار شماره 1 :
ساختار شماره 2 :
if(شرط) {
دستورات 1;
} else {
دستورات 2;
}
|
ساختار شماره 3 :
if(شرط1) {
دستورات 1;
} elseif(شرط2) {
دستورات 2;
} else {
دستورات 3;
}
|
مثال 1 :
$a = 1;
if($a) {
echo "True!";
}
توضیحات مثال 1 : ابتدا به متغیر مورد نظر مقدار 1 داده میشود سپس در ساختار شرطی مقایسه (آیا متغیر مورد نظر غیر صفر است ) صورت میگیرد و در صورت مثبت بودن شرط ، دستور مورد نظر اجرا میگردد.
|
مثال 2 :
$a = 1;
if($a) {
echo "True!";
} else {
echo "False!";
}
|
توضیحات مثال 2 : ابتدا به متغیر مورد نظر مقدار 1 داده میشود سپس در ساختار شرطی مقایسه (آیا متغیر مورد نظر غیر صفر است ) صورت میگیرد و در صورت مثبت بودن شرط ، دستور اول و در صورت منفی بودن جواب شرط دستور دوم اجرا میگردد.
|
مثال 3 :
$a = 5;
$b = 10;
if($a > $b) {
echo "$a > $b";
}
elseif($a < $b) {
echo "$a < $b";
} else {
echo "$a = $b";
}
|
توضیحات مثال 3 : ابتدا به متغیرهای مورد نظر مقدارهای دلخواه داده میشود سپس در ساختار شرطی مقایسه اول (آیا متغیر اول بزرگتر از متغیر دوم است) صورت میگیرد و در صورت مثبت بودن شرط ، دستور اول اجرا میگردد در غیر اینصورت مقایسه دوم (آیا متغیر اول کوچکتر از متغیر دوم است) صورت میگیرد و در صورت مثبت بودن شرط ، دستور دوم اجرا میگردد و در صورت منفی بودن دستور سوم اجرا میگردد. |
- دستور شرطی Switch (Switch Statements) :
برای انجام مقایسات زیاد و برای رهایی از بکار بردن دستورات متداخل IF استفاده از دستورSwitch بهترین پیشنهاد است . در این دستور ابتدا متغیر مورد نظر پس از کلمه کلیدی Switch بکار میرود و در بدنه این دستور توسط دستورات Case مقایسات صورت میگیرد .
ساختار دستور Switch :
switch(متغیر) {
case(مقدار 1):
دستور 1;
...
...
break;
case (مقدار 2):
دستور 1;
...
...
break;
default:
دستور 1;
...
...
}
|
توضیحات دستور Switch :
switch : معرف متغیر مورد نظر میباشد که متغیر بین (...) قرار میگیرد.
case : گزینههای پیش بینی شده را جهت مقایسه با مقدار متغیر معرفی میکند.
break : با این دستور شما میتوانید پایان مجموعه دستورات را معرفی نمایید .
نکته : اگر کلمه کلیدی break را بکار نبرید دستور switch درست کار نمیکند
default : در صورتی که هیچ کدام از دستورات case اعمال نگردد دستورات ذخیره شده در بخش default به اجرا در میآیند .
مثال دستور Switch :
$a = "100";
switch($a) {
case(10):
echo "مقدار وارد شده 10 میباشد";
break;
case (100):
echo "مقدار وارد شده 100 میباشد";
break;
case (1000):
echo "مقدار وارد شده 1000 میباشد";
break;
default:
echo "مقدار وارد شده صحیح نمی باشد";
}
|
نتیجه اجرای مثال فوق در زیر آورده شده است.
مقدار وارد شده 100 میباشد |
عملگر ? (? Operand) :
با استفاده از این عملگر شما می توانید یک دستور شرطی دو وجهی را در یک دستور قرار دهید.ترتیب این تعریف در زیر توضیح داده شده است.
(شرط مورد نظر)?درست بودن شرط : عدم برقراری شرط;
(Condition)?True Condition : False Condition;
به مثالهایی که در زیر آمده است دقت نمایید.
مثال 1 |
<?php
$a = 20;
$b = 55;
if($a < $b)
echo "<div>$a < $b</div>";
else
echo "<div>$a > $b</div>";
?>
|
جواب مسئله
20 < 55 |
توضیح : در مثال فوق پس از مقداردهی متغیرها شرط مقایسه صورت پذیرفته است و نتیجه نمایش داده شده است. |
مثال 2 |
<?php
$a = 20;
$b = 55;
echo ($a < $b)?"<div>$a < $b</div>":"<div>$a > $b</div>";
?>
|
جواب مسئله
20 < 55 |
در مثال فوق اگر دقت نمایید متوجه خواهید شد که 4 خط مثال قبل به یک خط کاهش یافته است و از تعداد کمتری دستورالعمل استفاده نموده اید.درواقع با بک دستورالعمل کار 4 دستورالعمل را انجام داده اید. |
دستور حلقه For (For Loops) :
همانگونه که از نام دستور بر میآید شما میتوانید یک یا چند حلقه تو در تو بنا به خواسته و نیاز خود در دستورات استفاده نمایید.
در این دستور شما میتوانید به تعداد معین حلقه را تکرار نمایید .
ساختار دستور :
for(مقدار اولیه متغیر شمارنده;شرط برقراری حلقه;نحوه افزودن یا کاهش متغیر شمارنده) {
دستورات 1;
}
|
یک حلقه برای اجرا نیاز به یکسری پارامتر و دستور دارد که به شرح ذیل میباشد :
مقدار اولیه شمارنده
شرط برقراری حلقه
کنترل شمارنده ( افزایش یا کاهش )
روال اجرای دستور حلقه For بدین شرح میباشد :
ابتدا مقدار اولیه متغیر شمارنده داده میشود ( ممکن است از قبل داده شده باشد ) سپس با دستور شرط برقرای حلقه مقایسه میشود و در صورت مثبت بودن شرط ، حلقه اجرا و مقدار شمارنده بسته به نوع دستور افزایش یا کاهش مییابد و مجددا مراحل از ابتدا امتحان میشود و تا زمان برقراری شرط حلقه تکرار میشود .
مثال :
for($i = 0; $i < 100 ; $i++) {
echo "$i^2 = ".($i*$i). "</P>";
}
|
نتیجه اجرای برنامه : |
0^2 = 0
1^2 = 1
2^2 = 4
3^2 = 9
... |
توضیح برنامه :
در این حلقه مقدار توان 2 یک متغیر بررسی و نتیجه نمایش داده میشود .
|
- دستور حلقه While (While Loop)
یکی از مواردی که در استفاده از حلقه های نامشخص کاربرد دارد حلقه While می باشد. همانگونه که ذکر شد این حلقه در مواردی که نمی توان حدس زد که حلقه تا چه زمانی اجرا شود کاربرد دارد. در مسائل پویا بیشترین کاربرد را دارد. این حلقه تا زمانی که شرط حلقه برقرار باشد کار می کند.
ساختار حلقهWhile |
while (condition) {
// Do something.
}
|
مثال |
$year = 2005;
while ($year <= 2015) {
echo "<P>".$year ."</P>";
$year++;
}
نتیجه :
2005
2006
...
2015
|
توضیحات : در مثال فوق ابتدا عدد 2005 به متغیر مورد نظر ارجاع داده می شود سپس شرط حلق با عدد 2015 مقایسه میشود و در صورت صحیح بودن شرط روال چاپ و افزایش متغیر متناوب تکرار میشود. |
مثال حلقه while |
- دستور حلقه Foreach (Foreach Loops)
با این دستور شما به راحتی میتوانید آرایه ها را بازبینی نمایید و از مقادیر آنها با استفاده از امکانات شیءگرا با دسترسی سریع بهره ببرید. به مثالهایی که در زیر آورده شده دقت نمایید. این دستور شباهت زیادی به دستور حلقه while دارد.
ساختارهای حلقه Foreach |
1.foreach ($array as $value) {
// Do something with $value.
}
2.foreach ($array as $key => $value) {
echo "The array value at $key is $value.";
}
|
$array = array("name" => "Alireza", "Family" => "Balvardi" );
foreach ($array as $val) {
echo "<P>$val</P>";
}
خروجی :
Alireza Balvardi
|
توضیحات : ابتدا شما با تعریف اندیس سلول آرایه و مقدار دهی مستقیم ، یک متغیر آرایه به وجود میآورید سپس با دستور حلقه foreach و ایجاد شیء از متغیر مورد نظر به مقادیر داده شده در اندیس آرایه دسترسی پیدا میکنید. |
$array = array("name" => "Alireza", "Family" => "Balvardi" );
foreach ($array as $key => $val) {
echo "<P>$key : $val</P>";
}
خروجی :
name : Alireza
Family : Balvardi
|
توضیحات : در حلقه فوق نحوه دسترسی کمی متفاوت از مثال قبل است یعنی شما قصد چاپ اندیس آرایه را نیز دارید. برای این منظور
از روش $array as $key => $val استفاده می نمایید که در متغیر $key شما اندیس آرایه و در متغیر $val مقدار اندیس
را جایگزین می نمایید . این جایگزینی توسط => صورت می پذیرد |
Foreach مثال |
- دستور حلقه Do While (Do While Loops)
این حلقه یکی دیگر از موارد استفاده حلقه ها می باشد. این حلقه عملکردی مشابه با حلقه While دارد. تنها تفاوت آن در این است که قبل از اجرای شرط حلقه یکبار اجرا می شود.
این حلقه زمانی قابل استفاده است که شما قصد دارید یک دستور یکبار انجام شود و سپس در شرط برای دفعات بعد مورد آزمایش و اجرا قرار بگیرد
در زیر دو مثال از روشهای استفاده از این حلقه و تفاوت آن با حلقه While جهت اطلاع بیشتر آورده شده است .
$i = -1;
do {
print "<P>$i</P>";
$i--;
} while ($i>0);
|
توضیح : در این حلقه ابتدا عدد 1- چاپ می شود سپس حلقه در شرط قرار می گیرد. |
$i = -1;
while ($i>0){
print "<P>$i</P>";
$i--;
}
|
توضیح : این حلقه بدلیل برقرار نبودن شرط اجرا نمی گردد. |
در دو مثال فوق تفاوت بین انواع حلقه while را مشاهده می نمایید. |