بررسی چند حالت مختلف (Case)
ممکن است بخواهید چندین حالت را برای یک شرط بررسی کنید. به جمله شرطی if
در قسمت زیر توجه کنید:
if ($i == 1 || $i == 2 || $i == 3) { echo '$i is somewhere between 1 and 3.'; }
به کمک یک دستور switch
، با افزودن case
ها بصورت بلافاصله و بدون افزودن Break ، می توانید همان کار را انجام دهید. به این عمل اصطلاحاً falling through گفته می شود. کد زیر دقیقا مانند کد جمله شرطی if
بالا عمل می کند:
case 1: case 2: case 3: echo '$i is somewhere between 1 and 3.'; break;
تمرین ۱:
در کد زیر دو زیر خط (_) را طوری جایگزین کنید که دستور سویچ ، اعداد ۳ و ۴ را نیز بررسی کند.
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $i = 5; switch ($i) { case 0: echo '$i is 0.'; break; case 1: case 2: case _: case _: case 5: echo '$i is somewhere between 1 and 5.'; break; case 6: case 7: echo '$i is either 6 or 7.'; break; default: echo "I don't know how much $i is."; } ?> </body> </html>
استفاده از Endswitch
برای نوشتن سویچ دو روش وجود دارد. روش اول همان روشی بود که تا بحال از آن استفاده می کردیم:
switch ($i) { }
اما روش دیگری نیز وجود دارد:
switch ($i): endswitch;
این روش را یک نوشتار جایگزین (alternative syntax) می نمامند. این نوشتار جایگزین به ما در راحت تر نوشتن کد های سویچ کمک می کند و در اصطلاح یک syntactic sugar می باشد.
هیچ تفاوتی میان استفاده از آکولاد (روش اول) یا نوشتار جایگزین وجود ندارد، فقط به ما در خواندن کد ها کمک خواهد کرد. نوشتار جایگزین اکثرا در فایل های تریکیبی HTML و PHP مورد استفاده است.
تمرین ۲:
در کد زیر که پاسخ تمرین قبل می باشد ، کد را به روش دوم بنویسید.
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $i = 5; switch ($i) { case 0: echo '$i is 0.'; break; case 1: case 2: case 3: case 4: case 5: echo '$i is somewhere between 1 and 5.'; break; case 6: case 7: echo '$i is either 6 or 7.'; break; default: echo "I don't know how much $i is."; } ?> </body> </html>
روی پای خود بایستید!
زمان آن رسیده تا نشان دهید درباره سویچ ها چه می دانید!
تمرین ۳:
یک سویچ بنویسید و برای آن سه case
و یک default
تعریف کنید. اگر دلتان خواست می توانید از روش دوم نوشتار کد سویچ نیز استفاده کنید.
حل تمرینات
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $i = 5; switch ($i) { case 0: echo '$i is 0.'; break; case 1: case 2: case 3: case 4: case 5: echo '$i is somewhere between 1 and 5.'; break; case 6: case 7: echo '$i is either 6 or 7.'; break; default: echo "I don't know how much $i is."; } ?> </body> </html>
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $i = 5; switch ($i): case 0: echo '$i is 0.'; break; case 1: case 2: case 3: case 4: case 5: echo '$i is somewhere between 1 and 5.'; break; case 6: case 7: echo '$i is either 6 or 7.'; break; default: echo "I don't know how much $i is."; endswitch; ?> </body> </html>
<!DOCTYPE html> <html> <head> <title></title> </head> <body> <?php $umOne=20; $umTwo=10; switch ($umTwo + $umOne): case (40): print "sum is 40"; break; case (30): echo "sum is 30"; break; case ("somthing"): echo "somthing else"; break; default: echo "nothing"; endswitch; ?> </body> </html>
تبریک! اکنون شما دستور بسیار پرکاربرد سویچ را بطور کامل آموخته اید. دست از تمرین برندارید و مطمئن باشید بزودی یک برنامه نویس وب خواهید بود.
بدون دیدگاه