آموزش php - دستورات شرطی

توسط: میثم کریمی | ۴-شهريور-۱۳۸۷ | PHP

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

در زبان 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 - مقدماتی
۱۹-اسفند-۱۳۸۷

php جعبه ابزاری که به یک زبان برنامه نویسی تبدیل شد
۱۵-بهمن-۱۳۸۷

آموزش php - حلقه ها
۱۲-شهريور-۱۳۸۷

آموزش php - دستورات شرطی
۴-شهريور-۱۳۸۷

آموزش php - عملگرها
۲-شهريور-۱۳۸۷


نظرات و ديدگاه هاي شما

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



دیدگاه ها
user_avatar
۱۳ شهريور ۱۳۸۷ ۲۲:۱۱:۴۰
ali
kheili khobe haminjooori edameh bedid
پاسخ دادن
user_avatar
۱۴ شهريور ۱۳۸۷ ۱۸:۱۹:۵۴
mina saedi
salam kheili kheili khob yad midi
پاسخ دادن
user_avatar
۱۷ مهر ۱۳۸۷ ۱۳:۱۲:۵۱
pouya
قبل از else ؛ داریم ؟ حتما داریم!
پاسخ دادن
user_avatar
۲۱ آذر ۱۳۸۷ ۰:۵۹:۳۴
محمد هادي
در خط ششم منظورتون اينه ديگه:اگه else رو نزاريم و شرط برقرار باشه خط 2 اجرا ميشه نه خط 4
پاسخ دادن
user_avatar
۲۱ آذر ۱۳۸۷ ۱:۲:۲۹
محمد هادي
در خط ششم منظورتون اينه ديگه:اگه else رو نزاريم و شرط برقرار باشه خط 2 اجرا ميشه نه خط 4
پاسخ دادن
user_avatar
۲۷ خرداد ۱۳۸۸ ۱۱:۱۷:۲۶
غزال
سلام واقعا عالیه.خیلی کمکم کرد. دستتون درد نکنه. موفق باشین.
پاسخ دادن
user_avatar
۱۳ آبان ۱۳۸۸ ۹:۶:۲۴
صفاری
خیلی خیلی خیلی خیلی جالب مینیویسید
پاسخ دادن
user_avatar
۱۶ آذر ۱۳۹۱ ۹:۳۳:۴۰
ahmad
من میخواستم بدونم چه شکلی میتوان یک متغیر را گرفت
پاسخ دادن
user_avatar
۲۶ آذر ۱۳۹۱ ۲۳:۳۴:۱۹
mamad
سلام دمتون گرم خیلی قشنگ توضیح میدین این دستور switch تقریبا ترکیبی از select cace & switch در ویژوال بیسیک هست؟؟
پاسخ دادن