60% تخفیف ویژه دوره تخصصی وردپرس به مدت محدود مشاهده دوره

آموزش دستور switch در php

دستور switch در php

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

 

بطور کلی دستورات در php ، به ما امکان پیاده سازی ایده ها و راهکار ها را می دهد. بنابراین هر چه بیشتر با این دستورات آشنا باشیم پیاده سازی های بهتر و کارآمدتری خواهیم داشت. یکی از این دستورات، دستور پر کاربرد switch است که برای مقایسه پارامترها استفاده می شود. دستورات مشابه دیگری همچون دستور if…else داریم که عملکرد مشابهی دارند. اما برنامه نویسان حرفه ای میان این دو دستور تمایز قائل می شوند زیرا این دو دستور کارکردی متفاوت دارند. برای درک بهتر کاربرد switch مثال زیر را در نظر بگیرید. اگر شما بخواهید در واقعیت کتابی را تهیه کنید به کتابخانه رفته با ارائه درخواست (switch) از بین کتابهای موجود (case) یک یا بیش از یک کتاب را انتخاب می کنید و آنها را از کتابدار تحویل می گیرید. روند کار این دستور نیز شبیه به همین است. بجای تعیین شرط، یکسری شرایط مدنظر را برای متغیر تعریف می کنیم تا خروجی مطلوب را بدست آوریم. در این ویدیو قصد داریم آموزش کار با دستور switch در php را به طور کامل ارائه کنیم.

 

 

دستور switch در php

دستور switch در php ، شیوه نگارشی مشابه سایر زبان های برنامه نویسی از جمله جاوا اسکریپت دارد. متغیر یا شروط را داخل پرانتز در مقابل دستور switch قرار می دهیم. در case های مختلف مقادیر مختلفی که برای این شرط یا متغیر وجود دارد را بررسی می کنیم. هر کدام از case ها ک با این متغیر برابری کرد تعیین کننده اقدام بعدی است. در صورتی که هیچ کدام با این دستور برابر نبود مقدار پیش فرض به عنوان نتیجه خروجی این دستور قرار می گیرد. در کد زیر ساختار یک دستور switch….case نشان داده شده است.

 

 

آموزش دستور switch در php

آموزش دستور switch در php یکی از ساده ترین در عین حال پر کاربردترین مفاهیم آموزشی php محسوب می شود. در مبحث آموزش دستورات شرطی  به نحوه کار دستور سوئیچ در php اشاره کردیم. در این بخش قصد داریم که این دستور را بصورت جامع بررسی کنیم. همانطور که گفته شد در دستور سوئیچ ما یک متغیر داریم که داخل پرانتز جلوی دستور switch قرار می گیرد. این متغیر کلید مقایسه با case هاست. یعنی بصورت تک به تک با تمامی مقادیر رویروی case ها مقایسه می شود و در صورت برابر بودن شرط داخل case اجرا می شود. برابری کلید با مقادیر case بصورت مطلق است. این بدان معناست که باید این مقدار از هر لحاظ چه از جنبه مقدار و چه از جنبه نوع داده با کلید برابر باشد تا مقدار شرط مساوی true شود.

 

خاتمه شرط ها

 دستور switch در php ،  بلافاصله پس از یافتن اولین نمونه مطابقت داده شده، خاتمه می یابد و از دستور switch خارج می شود. در داخل قسمت های case از دستور break استفاده شده است. بعد از اجزای دستورات داخل case ، دستور break اجرا می شود و کد مربوط به دستور switch خاتمه می یابد. در زمان برنامه نویسی باید در استفاده از دستور break دقت نمایید. زیرا استفاده نادرست از آن ممکن است کد شما را ناکارآمد کند. در صورتی که در پایان یک case از break استفاده نشود مقایسه تا رسیدن به یک دستور break ادامه می یابد و ممکن است نتیجه غیر منتظره ای داشته باشد. در قطعه کد زیر یک نمونه از این نوع خطا در دستور سوئیچ در php نمایش داده شده است:

خروجی این قطعه کد به صورت زیر است.

i equals 0
i equals 1
i equals 2
none of them

این قطعه کد بخاطر استفاده نکردن از break، تمامی دستورات داخل case ها را اجرا می کند حتی قسمت default را.

 

دستور continue

دستور continue یکی دیگر از دستورهای مورد استفاده در switch در php است که می توان جایگزین دستور break کرد. این دستور بیشتر برای حلقه ها استفاده می شود. خروجی این دستور نیز کاملا شبیه به دستور break است. کد زیر مثالی از این دستور است.

 

 

دستور default

دستور default برای تعیین یک مقدار پیش فرض برای حالتی است که هیچ کدام از case ها مقدار true نباشد. در این حالت دستور پیش فرض یا همان default را اجرا می کند.

 

 

دستور سوییچ داینامیک

در تمامی توضیحات ارائه شده در بالا برای دستور سوئیچ در php از حالت استاتیک استفاده شده است. یعنی شرط ورودی این تابع یک متغیر ثابت دارد. اما در اکثر موارد دستور سوئیچ به صورت داینامیک مقداردهی می شود. یعنی داده های ورودی از مکان های مختلف با مقادیر متفاوت وارد ساختار شرطی می شوند. برای درک بهتر به این مثال توجه کنید. در نظر بگیرید یک سایت از سراسر دنیا بازدیدکننده داشته باشد و اغلب این بازدیدکنندگان در سایت ثبت نام کنند. اگر بخواهیم فیلدهای ورودی فرم ثبت نام را براساس کشور کاربر بازدیدکننده نمایش دهیم؛ مثلا در قسمت شهرهای مربوط به آدرس، می توانیم براساس IP کاربر این کار را انجام دهیم. IP کاربران نمایش دهنده کشور مبدا است و می توانیم با تعریف یک متغیر داینامیک و قرار دادن مقدار IP داخل آن، در دستور سوئیچ فیلدهای مربوط به هر کشور را تعریف کنیم. چنین کاربردهایی از دستور سوئیچ در برنامه نویسی php بسیار رایج است و شما باید بتوانید چنین کدهایی را برنامه نویسی کنید.

حال با هم یک مثال ساده از دستور سوئیچ داینامیک را بررسی می کنیم.کد زیر تاریخ را از سرور گرفته و روز هفته را با عددی بین ۱ تا ۷ نمایش می دهد.

 

در این کد تابع date روز هفته را براساس تاریخ تنظیم شده در سرور گرفته و آن را در یک متغیر قرار می دهد. این متغیر به داخل ساختار شرطی switch فرستاده شده و پیام روز هفته نمایش داده می شود.

 

 

تفاوت if else و switch case 

هر دو این دستورات جزو دستورات کنترلی هستند و عملکرد مشابهی دارند. از جمله تفاوت های این دو دستور این است که عملگرهای منطقی در دستور if…else قابل استفاده است اما در switch نمی توان از آنها استفاده کرد . همچنین به صورت کلی دستور سوئیچ در php ، خوانایی بیشتری دارند و کدنویسی آنها تمیز تر است.

در ادامه مواردی که هر دستور استفاده می شود را بررسی می کنیم. از دستور if else برای حالت های زیر استفاده می کنیم:

  • وضعیت شرطی محدود به یک یا چند حالت
  • زمانی که کد اجرای شرط true، بیش از چندین خط باشد
  • متغیرهای مقایسه بیش از یک مورد باشد

حالت switch case بیشتر برای این موارد استفاده می شود:

  • زمانی که شرط ها بیشتر از یک مورد باشد
  • زمانی که فقط یک مورد برای مقایسه وجود داشته باشد.
  • زمانی که چندین مقایسه نتیجه یکسانی را برای یک شرط داشته باشند.

در این بخش به بررسی مهم ترین مباحث switch در php پرداختیم و نحوه کدنویسی این دستور در php را بررسی کردیم. سوالات خود پیرامون این مبحث را می توانید در قسمت دیدگاه ها مطرح نمایید.

2 دیدگاه دربارهٔ «آموزش دستور switch در php»

عرفان گفت:

برادر این فیلم هایی که از آموزش php مقدماتی بصورت رایگان قرار دادی برخی هاش پخش نمیشه نمونه اش فیلم همین صفحه

رضا حیدری گفت:

سلام بزرگوار ممنون از اطلاع رسانی تون اصلاح شد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *