دستور های شرطی : switch در php
مهندس محسن صادق نژاد
این پست با مسیر متخصص php مرتبط است. مشاهده مسیر (Roadmap)
در جلسهی گذشته، مقدمات کد نویسی به زبان PHP را برایتان شرح دادیم و ابتدا آموختیم که php چیست و با دستور های شرطی ساده ی پی اچ پی نیز آشنا شدیم. در این جلسه قصد داریم به ساختارهای نوع دوم در زبان php یعنی switch بپردازیم.
مقدمه
در آموزش قبل با دستور شرطی if برنامه ای نوشتیم که، اگر در روز جمعه قرار داشتیم جمله ی “آدینه بخیر” و در غیر این صورت جمله ی “موفق باشید” را به ما نشان می داد، سپس با دستور شرطی elseif برنامه را توسعه داده و برای روز های پنج شنبه جمله ی “آخر هفته ی خوبی داشته باشید ” را در نظر گرفتیم. ( توصیه می کنیم اگر آموزش دستور شرطی if را نخواندید اینجا کلیک کنید )
کد های نهایی برنامه به صورت زیر است :
<?php $today = date('D'); if($today == "fri"){ echo 'آدینه بخیر'; } elseif($today == "thu"){ echo 'آخر هفته ی خوبی داشته باشید'; } else{ echo 'موفق باشید'; } ?>
حال اگر بخواهیم، برای هر روز یک جمله ی متفاوت در نظر بگیریم باید چه کار کنیم؟
برای پاسخ به سوال بالا دو راه خواهیم داشت :
1- دستور if و elseif را 6 بار تکرار کنیم.
2- از دستور switch استفاده کنیم.
نحوه ی نوشتن دستور switch در php
در واقع دستور switch شباهت بسیاری با elseif دارد؛ این دستور همانند if…elseif…else به جهت انتخاب یک دستور از بین چند دستور استفاده میشود. در switch یک حالت default یا پیش فرض وجود دارد که اگر هیچکدام از مقادیر درست نبود، آن قسمت اجرا بشود. از کلمه کلیدی case بجای ifelse استفاده میکنیم و حالات مختلف شرط را در جلوی آن مینویسیم سپس علامت ” : ” میگذاریم.
به مثال زیر توجه کنید :
بطور واضح تر یعنی اگر مقدار شرط با مقدار case برابر بود، نتیجه این میشود که، باید دستورات مربوط به آن case اجرا شود. در غیر اینصورت case بعدی با مقدار شرط بررسی میشود. کلمه کلیدی break که از بخشهای switch است، وظیفهی جلوگیری از تداخل case ها با یکدیگر را دارد. مفسر PHP با دیدن break متوجه می شود که در کدام خط دستورات case تمام میشود. دقت کنید که هر case باید یک break داشته باشد، و آنرا قبل از شروع case بعدی بنویسید.
به پایان آموزش جذاب “دستور switch در php” رسیدیم. چنانچه ابهام و اشکال داشتید، می توانید به بخش کامنت مراجعه کنید و اشکال خود را مطرح کنید.