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

همانطور که از نام switch (به معنی تعویض کردن) پیداست، از آن برای انتخاب چند مورد (case) مختلف با توجه به مقادیری که مقایسه می شوند، استفاده می کنند، البته گاهی به جای switch و case از if و elseif هم استفاده می کنند، ولی فلسفه پیدایش این دو از هم جدا است و در کدنویسی های پیشرفته کارکردی متمایز دارند؛ اگر بخواهیم نحوه کاربرد switch و case در php را با یک مثال توضیح دهیم، می توان کتابخانه ای را فرض کرد که با توجه به درخواست شما (Statement یا دستور شما) از بین کتابهای (case های) موجود، یک مورد را انتخاب (switch) کرده و به شما تحویل می دهد.
شیوه نگارش یا syntax دستور switch در php

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

<?php
$statement = "Iran";
switch ($statement){
    case "Iran":
    echo "کشور کاربر: $statement";
    break;
    case "Other":
    echo "user country: $statement";
    break;
}
?>

توضیح:

  • در مثال بالا ابتدا متغیر فرضی statement برابر Iran قرار گرفته است.
  • سپس در دستور switch مقادیر متغیر statement به عنوان یکی از case ها مقایسه می شود و هر کدام که مقدار آن برابر بود، به خروجی داده می شود.
  • قسمت مربوط به break با true شدن هر case، باعث پایان جستجوی switch در موارد خود می شود، در واقع وقتی switch مقادیری مشابه متغیر statement پیدا می کند، case آن true شده و قسمت مربوط به break به جستجو خاتمه می دهد.
  • طبق کد بالا خروجی می شود: کشور کاربر: Iran
    استفاده از default case در دستور switch

حال با توجه به مثال، فرض کنید هیچ کدام از case های ما با مقادیر متغیر statement همخوانی نداشته باشند، ممکن است در این صورت بخواهیم به کاربر پیامی نشان دهیم یا به او بگوییم که کشور خود را در فیلد مربوط وارد کند و یا هر چیزی که نیاز به یک مقدار پیش فرض دارد؛ برای این منظور از ظرفیت دیگری در switch به نام default case یا مورد پیش فرض استفاده می کنیم، به مثال زیر توجه کنید.

<?php
$statement = "unknown";
switch ($statement){
    case "Iran":
    echo "کشور کاربر: $statement";
    break;
    case "Other":
    echo "user country: $statement";
    break;
    default:
    echo "please fill out your country field";
}
?>

توضیح:

  • با توجه به مثال بالا، چون مقدار متغیر statement برابر unknown است و هیچ کدام از case ها چنین مقداری ندارند، پس قسمت مربوط به default اجراء می شود.
  • دقت کنید که php بیشتر یک زبان داینامیک است تا استاتیک، یعنی داده ها و خروجی ها با توجه به شرایط و مقادیر متفاوت، مختلف خواهند بود، در مثال ها صرفا جهت کمک به آموزش مطلب، از متغیر های استاتیک استفاده شده است، لذا این مقادیر می توانند مثلا با توجه به IP کاربر یا نام او و یا هرآنچه که به عنوان یک متغیر می تواند تعریف شود، قابل تغییر باشد که این بستگی به نیاز و هدف شما دارد (در آینده در این رابطه بیشتر خواهیم گفت).

webgoo.ir