PHP-دستورات شرطی و انتخابی
#1
Note 
به این فکر کنید که می خواهید به یک سفر تفریحی برید!! اگر در تاریخ مورد نظر امتحان داشته باشید سفر خودتون رو لغو می کنید در غیر این صورت طبق برنامه به مسافرت میرید! این یک نمونه از دستورات شرطی هست که در زندگی روزمره زیاد باهاش برخورد می کنیم. در زبان های برنامه نویسی هم یکی از مهمترین و پرکاربردترین بخش های اون زبان دستورات شرطی هستند که اجازه میدن در صورتی که یک عبارت درست باشد یکسری عملیات انجام بشه و در صورت عدم برقراری اون عبارت یکسری دیگه از کارها انجام بشن!

در زبان php شکل کلی دستور شرطی به صورت زیر هستش:
[HTML]
1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;
3.else
4. dastoori ke agar shat bargharar Nabashe ejra mishe;
[/HTML]
توجه کنید که میتونید قسمت else رو حذف کنید در این صورت فقط زمانیکه شرط برقرار باشه دستور خط 4 اجرا میشه و اگر شرط برقرار نباشه هیچ اتفاقی نمی افته! یعنی به شکل زیر در میاد:
[HTML]
1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;[/HTML]

مثلا شما می خواهید فقط به کاربر گروه admin اجازه ورود بدید در این صورت اگر کاربر از گروه admin باشه به صفحه مورد نظر ببریدش و در غیر این صورت بهش پیغام مناسبی نمابش بدید:
[HTML]
if ($userType == 'admin')
{
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
}
else
//show error message.
[/HTML]
اگه خوب به این مثال دقت کنید می بینید که اگر مجبور باشیم چند دستور رو داخل بلوک شرطی قرار بدیم باید از آکولاد {} استفاده کنیم و مجموعه دستورات رو داخل آکولادها قرار بدیم! حالا فرض کنید ما چند گروه کاربر دیگه هم داریم که باید برای هر کدوم پیغام و صفحه متمایزی رو نشون بدیم! مثلا گروه های کاربریمون عبارتند از admin,user,editor,programmer در این حالت باید دستورات شرطی رو باهم ترکیب کنیم! بوسیله elseif این کار ممکن میشه:
[HTML]
if ($userType == 'admin')
{
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
}
elseif($userType == 'user')
//show user control panel
elseif($userType == 'editor')
//show editors page
elseif($userType == 'programmer')
//show development panel
else
//show error message.[/HTML]

میتونیم به هر تعداد که بخواهیم این کار رو تکرار کنیم و از elseif استفاده کنیم. در هر کدوم از بلوک های شرطی هم باید در صورتی که چندتا دستور داریم از آکولاد استفاده کنیم! حالا فرض کنید تعداد این شرط ها خیلی بیشتر بشه که در این صورت استفاده از if و elseif زیاد معقول به نظر نمیاد اینجاست که باید از نوع دیگه ای از دستورات شرطی (یا بهتره بگیم انتخابی) بهره ببریم! دستور switch در حالتی که تعداد if ها زیاد باشه خیلی به کار میاد. شکل کلی این دستور رو در ادامه می بینید:
[HTML]
switch($choice)
{
case halateAvval: ;
break;
case halateDovvom: ;
break;
case halateSevvom: ;
break;
.
.
.
default: ;
break;
}[/HTML]

دستور switch یه مقدار توضیح میخواد:
اول اینکه switch یک متغیر به عنوان ورودی میگیره و ما مقادیر مختلف اون رو بررسی می کنیم.
دوم اینکه هر کدوم از مقادیر رو جلوی عبارت case می نویسیم.
سوم اینکه بعد از تمام شدن هر بلوک از دستورات برای یک مقدار خاص ، باید از ;break استفاده کنیم.
چهارم هم اینکه deafult حالت پیش فرض رو مشخص میکنه یعنی وقتی که متغیرمون هیچ کدوم از مقادیر مورد بررسی رو نداشته باشه.

در پایان این بخش هم مثال گروه های کاربری رو با switch بازنویسی میکنیم:
[HTML]
switch($userType)
{
case 'admin':
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
break;

case 'user':
//show user control panel
break;

case 'editor':
//show editors page
break;

case 'programmer':
//show development panel
break;

default:
//show error message.
break;
}[/HTML]

می بینید که کد ساده تر و خواناتری داریم که در موارد مشابه کارمون رو ساده میکنه!

webfocus.ir

چطور امضا کنم؟  Huh
پاسخ
ایجاد موضوع جدید   پاسخ به موضوع  

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
Note دستورات پایگاه داده maynoush 2 430 19-07-2014 ساعت 09:17
آخرین ارسال: THE KNIGHT
Note مشکل در اجرای دستورات سیمفونی در ویندوز IranPhp 4 522 21-11-2013 ساعت 14:59
آخرین ارسال: IranPhp
Note تفاوت دستور include با require در PHP SOFTAFZAR 1 922 29-11-2012 ساعت 15:36
آخرین ارسال: Saeed-N
Note PHP-دستور زبان و کار با متغیرها THE KNIGHT 0 380 12-11-2012 ساعت 20:05
آخرین ارسال: THE KNIGHT

کاربرانِ درحال بازدید از این موضوع:   1 مهمان