دستور switch برای انجام اقدامات مختلف بر اساس شرایط متفاوت استفاده میشود. از این دستور برای انتخاب یکی از چندین بلوک کد جهت اجرا استفاده کنید.
Syntax (ساختار) دستور switch
switch (expression) {
case label1:
// بلوک کد
break;
case label2:
// بلوک کد
break;
case label3:
// بلوک کد
break;
default:
// بلوک کد
}
نحوه عملکرد آن به این صورت است:
- عبارت (expression) یک بار ارزیابی میشود.
- مقدار عبارت با مقادیر هر
caseمقایسه میشود. - اگر تطابقی وجود داشته باشد، بلوک کد مرتبط با آن اجرا میشود.
- کلمه کلیدی
breakباعث خروج از بلوکswitchمیشود. - اگر هیچ تطابقی پیدا نشود، بلوک کد
defaultاجرا میشود.
Example
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
break;
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
کلمه کلیدی break در PHP
وقتی PHP به کلمه کلیدی break میرسد، از بلوک switch خارج میشود. این کار باعث توقف اجرای کد شده و دیگر هیچ case دیگری تست نخواهد شد. بلوک کد آخر نیازی به break ندارد، زیرا بلوک در آنجا به پایان میرسد.
هشدار: اگر دستور break را در یک case (غیر از آخرین مورد) حذف کنید و آن مورد تطبیق داده شود، case بعدی نیز اجرا خواهد شد، حتی اگر مقدار آن با عبارت شما مطابقت نداشته باشد!
Example
اگر دستور break را از case "red" حذف کنیم، چه اتفاقی میافتد؟
در اینجا $favcolor برابر “red” است، بنابراین بلوک کد مربوط به case "red" اجرا میشود، اما چون دستور break ندارد، بلوک کد مربوط به case "blue" نیز اجرا خواهد شد:
$favcolor = "red";
switch ($favcolor) {
case "red":
echo "Your favorite color is red!";
case "blue":
echo "Your favorite color is blue!";
break;
case "green":
echo "Your favorite color is green!";
break;
default:
echo "Your favorite color is neither red, blue, nor green!";
}
کلمه کلیدی default در PHP
کلمه کلیدی default مشخص میکند که اگر هیچ caseای با عبارت مطابقت نداشت، چه کدی اجرا شود:
Example
اگر هیچ موردی تطبیق پیدا نکند، بلوک default اجرا میشود:
$d = 4;
switch ($d) {
case 6:
echo "Today is Saturday";
break;
case 0:
echo "Today is Sunday";
break;
default:
echo "Looking forward to the Weekend";
}
ترکیب Caseها
اگر میخواهید چندین case از یک بلوک کد یکسان استفاده کنند، میتوانید آنها را به این صورت مشخص کنید:
Example
استفاده از بیش از یک case برای هر بلوک کد:
$d = 3;
switch ($d) {
case 1:
case 2:
case 3:
case 4:
case 5:
echo "The week feels so long!";
break;
case 6:
case 0:
echo "Weekends are best!";
break;
default:
echo "Something went wrong";
}
