
یکی از پرکاربردترین دستورات در php شرط ها هستند که می توان قسمت های مختلف یک برنامه را توسط آن ها کنترل کرد.
دستور شرطی IF
|
1
2
3
4
|
if ( شرط ){اجرا در صوررت تحقق شرط} |
شکل کلی این دستور به صورت بالا می باشد که در صورت تحقق یافتن شرط قسمت میان {} اجرا می شود.
|
1
2
3
4
5
6
|
$a = 4;$b = 2;if ( $a > $b ){echo 'a bigger than b';} |
ابتدا دو متغیر عددی تعریف کرده و به آنها مقدار دادیم سپس با دستور if به مقایسه آنها پرداختیم و مشخص کردیم در صورت تحقق شرط بخش مورد نظر چاپ شود یعنی خروجی ما a bigger than b خواهد بود.
دستور شرطی IF…ELSE
|
1
2
3
4
5
6
|
if( شرط ){اجرا در صورت تحقق شرط}else{اجرا در صورت تحقق نیافتن شرط} |
مشابه قسمت قبل می باشد فقط قسمت بعد از else در صورت تحقق نیافتن شرط اجرا می گردد.
|
1
2
3
4
5
6
7
8
9
|
if( شرط )$a = 10;$b = 20;if( $a > $b ){echo 'a bigger than b';}else{'a smaller than b';} |
دستور شرطی IF…ELSE IF…ELSE
|
1
2
3
4
5
6
7
8
|
if( شرط ){اجرا در صورت تحقق شرط اول}elseif( شرط دوم ){اجرا در صورت تحقق یافتن شرط دوم}else{اجرا در صورت تحقق نیافتن هیچکدام از شرط ها} |
فرض کنید میخواهیم چند شرط را بررسی کنیم و نتیجه را به کاربر اعلام کنیم در اینجا باید از روش بالا استفاده کنیم.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<form method='post' action=''>Your Average : <input type='text' name='average'><input type='submit' name='submit' value='send'></form><?phpif(isset($_POST['submit'])){$average = $_POST['average'];if( $average > 16 ){echo 'عالی';}elseif( $average == ۱۴ ){echo 'متوسط';}else{echo 'ضعیف';}}?> |
ابتدا یک فرم که ساختیم که معدل را دریافت می کند و سپس در شرط اول بررسی کردیم اگر معدل بیشتر از ۱۶ بود عالی چاپ شود و در شرط دوم اگر برابر ۱۴ بود متوسط و اگر غیر از این بود ضعیف چاپ می شود.
تنها یک نکته در کد بالا شاید برای شما جدید باشد و آن هم دستور ()isset می باشد که بررسی می کند که آیا متغیر مورد نظر ست شده یا نه و به زبان ساده تر آیا بر روی دکمه submit کلیک شده است که متغیر مورد نظر مقدار بگیرد ؟
دستور شرطی SWITCH
|
1
2
3
4
5
6
7
8
9
10
11
|
switch( عبارتی که باید بررسی شود ){case عبارت ثابت اول:اجرا در صورت تطابق یافتن عبارت اولbreak;case عبارت ثابت دوم:اجرا در صورت تطابق یافتن عبارت دومbreak;default:اجرا در صورت تطابق نیافتن هیچ کدام از عبارت های ثابت} |
فرض کنید در جایی ما یک رشته را با ۱۰۰ رشته دیگر مقایسه کنیم در اینجا استفاده از شرط های زیاد باعث پیچیدگی کد می شود و باید به فکر راه حلی بهتری باشیم که switch می تواند مشکل ما را حل کند.
در این روش یک عبارتی که باید بررسی شود در داخل () گرفته و سپس با case اول مقایسه می شود و در صورتی که نتیجه صحیح باشد با break دستور پایان می یابد و در صورت صحیح نبود سراغ case های بعدی می رود و در آخر اگر با هیچ کدام صحیح نشود قسمت بعد از default اجرا می شود.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
$month = 10;switch( $month ){case 1:echo 'فروردین';break;case 2:echo 'اردیبهشت';break;case 3:echo 'خرداد';break;case 4:echo 'تیر';break;case 5:echo 'مرداد';break;case 6:echo 'شهریور';break;case 7:echo 'مهر';break;case 8:echo 'آبان';break;case 9:echo 'آذر';break;case 10:echo 'دی';break;case 11:echo 'بهمن';break;case 12:echo 'اسفند';break;default:echo 'این ماه در تاریخ هجری شمسی وجود ندارد.';} |
در کد بالا با توجه به مقدار متغیر month$ ماه مورد نظر شناسایی می شود که با این روش می توان در سایت خود ماه تولد را به عدد دریافت و به فارسی نمایش داد.
امیدوارم این بخش مورد توجه شما قرار گرفته باشد.بنده از این اینکه دیر آپ میکنم عذر میخواهم زیرا کمی درگیر کارم و وقت کافی برای نوشتن بخش های مختلف را در زمان کمتر ندارم.