fluidfluidfluidfluidfluid

سوال جواب دانشجویی

سوالات و مشکلات خود را مطرح کنید تا سریع به جواب برسید

عنوان سوال : دستور switch در php
جعفر مرادیان - (سوال کننده)

منطق شرطی


نحوه کارکرد دستور switch در php


نمونه کد دستور switch

زهرا یعقوبیان


دستور switch در PHP به شما امکان می دهد برای بررسی مقادیر مختلف یک متغیر و اجرای یک بلوک کد مختلف براساس مقدار متغیر استفاده کنید. ساختار کلی switch در PHP به شکل زیر است:

switch (expression) {
  case value1:
    // اجرای کد برای value1
    break;
  case value2:
    // اجرای کد برای value2
    break;
  // موارد بیشتر
  default:
    // اجرای کد برای هیچ یک از مقادیر بالا
    break;
}


در اینجا، expression یک متغیر است که مقدار آن می تواند با یکی از مقادیر value1، value2 و ... مطابقت داشته باشد. هر case در switch برای یکی از مقادیر مختلف متغیر استفاده می شود، و کد مربوط به هر case برای آن مقدار اجرا می شود. در صورتی که هیچ یک از مقادیر متغیر با هیچ یک از مقادیر value1، value2 و ... مطابقت نداشت، بلوک کد default اجرا می شود.


در زیر یک مثال برای استفاده از switch در PHP آورده شده است:

$num = 2;
switch ($num) {
  case 1:
    echo "عدد یک است";
    break;
  case 2:
    echo "عدد دو است";
    break;
  case 3:
    echo "عدد سه است";
    break;
  default:
    echo "عدد نامشخص است";
    break;
}


این برنامه، مقدار متغیر $num را با مقادیر 1، 2 و 3 مقایسه می کند. اگر $num با 2 مطابقت داشته باشد، بلوک کد برای case 2 اجرا می شود و متن "عدد دو است" نمایش داده می شود. در صورتی که $num با هیچ یک از این مقادیر مطابقت نداشته باشد، بلوک کد default اجرا می شود و متن "عدد نامشخص است" نمایش داده می شود.


همچنین، شما می توانید برای یک case چندین مقدار مختلف متغیر را مطابقت دهید. در این صورت، مقدارهای مختلف باید با کاما از هم جدا شوند. برای مثال:

$num = 2;
switch ($num) {
  case 1:
  case 3:
  case 5:
    echo "عدد فرد است";
    break;
  case 2:
  case 4:
    echo "عدد زوج است";
    break;
  default:
    echo "عدد نامشخص است";
    break;
}


در این مثال، برای case 1، 3 و 5، کد "عدد فرد است" اجرا می شود، زیرا همه این مقادیر فرد هستند. همچنین، برای case 2 و 4، کد "عدد زوج است" اجرا می شود، زیرا هر دوی این مقادیر زوج هستند.


در نهایت، شما همچنین می توانید از switch در PHP برای بررسی رشته ها استفاده کنید. در این صورت، شما باید رشته مورد نظر را به عنوان مقدار expression برای switch استفاده کنید. برای مثال:

$name = "John";
switch ($name) {
  case "John":
    echo "نام این شخص John است";
    break;
  case "Mary":
    echo "نام این شخص Mary است";
    break;
  default:
    echo "نام این شخص نامشخص است";
    break;
}


در این مثال، مقدار $name با رشته های "John" و "Mary" مقایسه می شود. اگر $name با رشته "John" مطابقت داشته باشد، بلوک کد برای case "John" اجرا می شود و متن "نام این شخص John است" نمایش داده می شود. در صورتی که $name با رشته "Mary" مطابقت داشته باشد، بلوک کد برای case "Mary" اجرا می شود و متن "نام این شخص Mary است" نمایش داده می شود. در غیر این صورت، بلوک کد default اجرا می شود و متن "نام این شخص نامشخص است" نمایش داده می شود.


در switch در PHP شما همچنین می توانید از نوع داده ای دیگری بجز integer و string برای مقدار expression استفاده کنید، به شرطی که این نوع داده از نوع اشیاء قابل قبول برای تبدیل به رشته باشد. به عنوان مثال، شما می توانید از switch برای بررسی مقدار یک boolean استفاده کنید، به شرطی که مقدار expression باشد true یا false ولی نمی توانید از آن برای بررسی مقدار یک object استفاده کنید.


همچنین، شما می توانید break را در switch در PHP حذف کنید. اگر break را از بین بردارید، برنامه از محاسبات خارج نمی شود و تمام بلوک های کد بعدی نیز اجرا می شوند. برای مثال:

$num = 2;
switch ($num) {
  case 1:
    echo "عدد یک است";
  case 2:
    echo "عدد دو است";
  case 3:
    echo "عدد سه است";
  default:
    echo "عدد نامشخص است";
}


در این مثال، برای مقدار $num برابر با 2، بلوک های کد برای case 2، case 3 و default اجرا می شوند و متن "عدد دو است"، "عدد سه است" و "عدد نامشخص است" نمایش داده می شود.


در نهایت، شما می توانید یک switch در PHP در یک بلوک کد if قرار دهید. این کار می تواند در برخی موارد بسیار مفید باشد. برای مثال:

$num = 5;
if ($num > 0 && $num < 4) {
  switch ($num) {
    case 1:
      echo "عدد یک است";
      break;
    case 2:
      echo "عدد دو است";
      break;
    case 3:
      echo "عدد سه است";
      break;
  }
} else {
  echo "عدد نامعتبر است";
}


در این مثال، ابتدا شما با یک بلوک کد if بررسی می کنید که آیا $num در محدوده بین 1 و 3 قرار دارد یا خیر. اگر $num در این محدوده باشد، یک switch برای بررسی مقدار $num قرار می گیرد و در غیر این صورت یک پیام خطا برای مقدار نامعتبر $num نمایش داده می شود.

 
با این حال، باید توجه داشته باشید که استفاده از switch در PHP نباید در تمامی شرایط به عنوان یک روش مناسب برای برنامه نویسی در نظر گرفته شود.


 در برخی موارد، استفاده از یک بلوک کد if-else ممکن است بهتر و قابل فهمتر باشد، به خصوص در صورتی که شرایط شما پیچیده باشد و نیاز به تعداد زیادی از شرایط یا عملیات های محاسباتی داشته باشد. همچنین، استفاده از switch در PHP برای بررسی رشته ها نیز پرهزینه است و بهتر است از دیگر روش های پیشنهاد شده برای بررسی رشته ها استفاده کنید.

سوالی دارید؟

هر سوالی دارید فقط کافیه سوال خود را مطرح کنید تا از جواب هزاران کاربر سراسر اینترنت اگاه شوید.

نیاز داریم که شما با ما هماهنگ باشید آیا مایل هستید؟

میدونی مشاوره پروژه چیه؟

از صفر تا صد پروژه ات یک متخصص کمکت میکنه تا پروژتون رو انجام بدی نیاز به آموزش داری آموزشت میده باگ داری برات رفع میکنه