آموزش عبارت Switch در php به زبان ساده
عبارت Switch مشابه با یک سری عبارت های if است.
دو مثال زیر؛ دو روش متفاوت برای نوشتن برنامه ای متفاوت است، یکی از آنها با استفاده از یک سری از عبارت های if و else-if نوشته شده است و دیگری با استفاده از عبارت switch نوشته شده است.
<?php
$i=2;
if ($i == 0)
{
echo “$i equals 0 “;
}
else if ($i == 1)
{
echo “$i equals 1 “;
}
else if ($i == 2)
{
echo “$i equals 2 “;
}
//using switch
switch ($i)
{
case 0:
echo “$i equals 0 “;
break;
case 1:
echo “$i equals 1 “;
break;
case 2:
echo “$i equals 2 “;
break;
}
?>
خروجی کد بالا به صورت زیر می باشد:
۲ equals 2
۲ equals 2
در مثال بالا i$ یک متغیر است که مقدار ۲= را اتخاذ می کند؛ عبارت switch مانند عبارت های if else تو در تو عمل می کند.
شرط if کد:
$i==2
را بررسی می کند؛ اگر منطبق باشد؛ خروجی به صورت equals 2 چاپ می شود.
به همین ترتیب برای عبارت (switch ($i منطبق بودن ۲، باعث می شود که خروجی به صورت equals 2 چاپ بشود.
عبارت Switch بدون وقفه:
<?php
$i=0;
switch ($i)
{
case 0:
echo “$i equals 0″.”<br/>”;
case 1:
echo “$i equals 1″.”<br/>”;
case 2:
echo “$i equals 2″.”<br/>”;
}
خروجی کد بالا به صورت زیر است:
۰ equals 0
۰ equals 1
۰ equals 2
متغیر (i$) مقدار ۰ را اتخاذ می کند. این مقدار به داخل عبارت switch منتقل می شود. این عبارت تطبیق موارد را آغاز می کند؛ اولین مورد با مقدار متغیری که در ابتدا بیان شده است (۰) تطبیق داده می شود.
تمام عبارت از مورد ۰: تا مورد ۲: اجرا می شود.
مورد Switch ممکن است حاوی یک عبارت خالی باشد ، سپس به سادگی کنترل را روی مورد بعدی اعمال می کند.
<?php
$i=1;
switch ($i)
{
case 0:
case 1:
case 2:
echo “$i is less than 3 but not negative”;
break;
case 3:
echo “i is 3”;
}
?>
خروجی کد بالا به این صورت است: ۱ کمتر از ۳ است اما منفی نیست.
یک متغیر (i$) با عدد ۱ مقدار دهی می شود. اکنون این مقدار درون عبارت switch منتقل می شود.
اکنون موردی که باید با متغیر مقداردهی شده (i$) تطبیق داده شود، آغاز می شود. برای مثال مورد:۱ منطبق است.
اما عبارتی برای اجرا وجود ندارد. بنابراین از این مورد پرش می کند، زیرا در مورد: ۱ وقفه وجود ندارد.
مورد جدید: عبارت ۲ اجرا می شود و وقفه برنامه را خاتمه می دهد.
خروجی مورد:۲ به (عبارت): ۱ کمتر از ۳ می باشد اما منفی نیست؛ تبدیل می شود.
استفاده از تعاریف پیش فرض در عبارت Switch:
در موردی که هر مورد switch تطبیق داده نمی شود، عبارت های پیش فرض اجرا می شود:
<?php
$i=5;
switch ($i)
{
case 0:
echo “i equals 0”;
break;
case 1:
echo “i equals 1”;
break;
case 2:
echo “i equals 2”;
break;
default:
echo “i is not equal to 0, 1 or 2”;
}
?>
خروجی به صورت زیر می باشد:
۵ is not equal to 0, 1 or 2
(۵ مساوی با ۰، ۱ یا ۲ نمی باشد).
در مثال بالا، i$ متغیری است که مقدار ۵ را اتخاذ می کند. اکنون شرط switch با متغیر i$ اجرا می شود.
در این جا ۳ مورد تعریف شده است. به این ترتیب مقدار ۰ ، ۱ و ۲ بررسی می شود.
اما فقط شرط پیش فرض اجرا می شود زیرا تمام سه مورد منطبق نیستند. و خروجی عبارت زیر را نمایش می دهد:
۵ is not equal to 0,1 or 2
(۵ مساوی با ۰ ، ۱ یا ۲ نیست).
وارد کردن اولین و دومین عدد و انتخاب؛ انجام محاسبات:
<?php
$f=$_POST[‘f’];
$s=$_POST[‘s’];
$choice=$_POST[‘ch’];
switch ($choice)
{
case “+”:
$sum=$f+$s;
echo “Sum=”.$sum;
break;
case “-“:
$sub=$f-$s;
echo “Subtraction=”.$sub;
break;
case “*”:
$mult=$f*$s;
echo “Multiplication=”.$mult;
break;
case “/”:
$div=$f/$s;
echo “Division=”.$div;
break;
default:
echo “Invalid choice”;
}
?>
<form method=”post”>
Enter first number<input type=”text” name=”f”/><hr/>
Enter second number<input type=”text” name=”s”/><hr/>
Enter your choice<input type=”text” name=”ch”/><hr/>
<input type=”submit” value=”Show Result”/>
</form>
در مثال بالا، ابتدا با استفاده از یک اسکریپت HTML فرمی را ایجاد کرده ایم تا ورودی را از کاربر دریافت کند. درون فرم؛ ما سه باکس متنی و یک دکمه ارسال ایجاد کرده ایم. منطق برنامه اسکریپت پی اچ پی را تعریف می کند. متغیر (f, $s, $choice$) تعریف شده اند تا مقادیری را که کاربر وارد می کند با به کار گرفتن:
$_POST [ ]
دریافت کنند. choice$ برای انجام عملیات ها (جمع، ضرب، تقسیم و تفریق) به کار می روند. اولین عدد ورودی ۵۰۰ و دومین عدد ورودی نیز ۵۰۰ می باشد. عملیات انتخابی توسط کاربر “+” می باشد که درون باکس متنی انتخاب وارد می شود. بنابراین اولین مورد تطبیق داده خواهد شد و اولین مورد (+) اجرا می شود. خروجی به این صورت نمایش داده می شود: Sum= 1000