آموزش php - قسمت پنجم - دستورات شرطی و انتخابی

  Donbaleh  داغ کن - کلوب دات کام


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

در زبان php شکل کلی دستور شرطی به صورت زیر هستش:

1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;
3.else
4. dastoori ke agar shat bargharar Nabashe ejra mishe;

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

1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;

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

if ($userType == 'admin')
{
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
}
else
//show error message.

اگه خوب به این مثال دقت کنید می بینید که اگر مجبور باشیم چند دستور رو داخل بلوک شرطی قرار بدیم باید از آکولاد {}  استفاده کنیم و مجموعه دستورات رو داخل آکولادها قرار بدیم! حالا فرض کنید ما چند گروه کاربر دیگه هم داریم که باید برای هر کدوم پیغام و صفحه متمایزی رو نشون بدیم! مثلا گروه های کاربریمون عبارتند از admin,user,editor,programmer در این حالت باید دستورات شرطی رو باهم ترکیب کنیم! بوسیله elseif این کار ممکن میشه:

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.

میتونیم به هر تعداد که بخواهیم این کار رو تکرار کنیم و از elseif استفاده کنیم. در هر کدوم از بلوک های شرطی هم باید در صورتی که چندتا دستور داریم از آکولاد استفاده کنیم! حالا فرض کنید تعداد این شرط ها خیلی بیشتر بشه که در این صورت استفاده از if و elseif زیاد معقول به نظر نمیاد اینجاست که باید از نوع دیگه ای از دستورات شرطی (یا بهتره بگیم انتخابی) بهره ببریم! دستور switch در حالتی که تعداد if ها زیاد باشه خیلی به کار میاد. شکل کلی این دستور رو در ادامه می بینید:

switch($choice)
{
case halateAvval: ;
break;
case halateDovvom: ;
break;
case halateSevvom: ;
break;
.
.
.
default: ;
break;
}

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

در پایان این بخش هم مثال گروه های کاربری رو با switch  بازنویسی میکنیم:

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;
}

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


ادامه » آموزش php - قسمت ششم - حلقه های تکرار

بازگشت « آموزش php - قسمت چهارم - عملگرها


تگ ها : php

مطالب مرتبط
آموزش php - قسمت هشتم - توابع
۲۹-ارديبهشت-۱۳۹۰

آموزش php - قسمت هفتم - آرایه ها
۸-ارديبهشت-۱۳۸۹

PHP 5.3.0 منتشر شد
۲۹-تير-۱۳۸۸

عملگرهای PHP
۲-ارديبهشت-۱۳۸۸

رشته ها در PHP
۲-ارديبهشت-۱۳۸۸

متغیرها در PHP
۱-ارديبهشت-۱۳۸۸

دستور زبان PHP
۱-ارديبهشت-۱۳۸۸

نصب php
۱-ارديبهشت-۱۳۸۸

نظر بدهید!

نام:
ایمیل:
نظر:
 

نظرات شما!
نام: ali
تاریخ ارسال: ۱۳ شهريور ۱۳۸۷ ۱:۴۱:۴۰
kheili khobe haminjooori edameh bedid
نام: mina saedi
تاریخ ارسال: ۱۴ شهريور ۱۳۸۷ ۲۱:۴۹:۵۴
salam kheili kheili khob yad midi
نام: محمد هادي
تاریخ ارسال: ۲۱ آذر ۱۳۸۷ ۴:۳۲:۲۹
در خط ششم منظورتون اينه ديگه:اگه else رو نزاريم و شرط برقرار باشه خط 2 اجرا ميشه نه خط 4
نام: محمد هادي
تاریخ ارسال: ۲۱ آذر ۱۳۸۷ ۴:۲۹:۳۴
در خط ششم منظورتون اينه ديگه:اگه else رو نزاريم و شرط برقرار باشه خط 2 اجرا ميشه نه خط 4
نام: pouya
تاریخ ارسال: ۱۷ مهر ۱۳۸۷ ۱۶:۴۲:۵۱
قبل از else ؛ داریم ؟ حتما داریم!
نام: غزال
تاریخ ارسال: ۲۷ خرداد ۱۳۸۸ ۱۴:۴۷:۲۶
سلام واقعا عالیه.خیلی کمکم کرد. دستتون درد نکنه. موفق باشین.
نام: صفاری
تاریخ ارسال: ۱۳ آبان ۱۳۸۸ ۱۲:۳۶:۲۴
خیلی خیلی خیلی خیلی جالب مینیویسید
نام: مریم
تاریخ ارسال: ۷ شهريور ۱۳۸۹ ۱۹:۵۶:۰
توضیحاتتون خیلی خوبه فقط اگه مطالب پیشرفته تر هم بذارید عالی می شه.
نام: فرهاد
تاریخ ارسال: ۲۱ شهريور ۱۳۹۰ ۱۴:۹:۲۷
سلام من ميخواستم بدونم چطور ميشه اعضاي آنلاين رو نمايش داد؟لطفا كمك كنيد
نام: sina
تاریخ ارسال: ۹ مهر ۱۳۹۰ ۲۲:۵۳:۴۹
اگر این شرطها رو بزاریم نتیجه اشتباه میشود: switch ($i){ case 0: //code break; case 1: //code break; default: //code } switch ($i){ case 0: //code break; case ($i<1 || $i>0): //code break; default: //code }
نام: sina
تاریخ ارسال: ۹ مهر ۱۳۹۰ ۲۲:۵۵:۵۲
چرا پس nl2br ندارید در کامنتها؟ یکی خوب میخواد یک تکه کد بنویسه.