Switch

سلام . می خواستم بدونم چه جوری می شه توو Case مقادیر بین 2 عدد رو قرار داد ؟
مثلا اگه متغیری بین عدد 20 و 32 بود فلان دستور اجرا بشه .
مثال :
PHP:
switch($burden)
{
    case >=20 AND <=32:
        $MajidOnline = 100;
        break;
    .
    .
    .
}
البته این کد رو برا مثال گفتم که متوجه بشید منظورمو . ممنون می شم اگه کد درستش رو بذارید . :rose:
 

ziXet

مدیر انجمن PHP/MYSQL
سلام . می خواستم بدونم چه جوری می شه توو Case مقادیر بین 2 عدد رو قرار داد ؟
مثلا اگه متغیری بین عدد 20 و 32 بود فلان دستور اجرا بشه .
مثال :
PHP:
switch($burden)
{
    case >=20 AND <=32:
        $MajidOnline = 100;
        break;
    .
    .
    .
}
البته این کد رو برا مثال گفتم که متوجه بشید منظورمو . ممنون می شم اگه کد درستش رو بذارید . :rose:
ببین فکر کنم اصلا نمیشه شرط رو بررسی کرد!
اگه میشد حتما یه مثال تو سایت php مینوشت!
http://ir.php.net/switch
 

narsic

New Member
با سلام
نمیشه به این شکل استفاده کرد از دستورات if و elseif استفاده کنید
موفق باشید
 

yakoza

Well-Known Member
با این روش میشه

PHP:
<?php

$b=150;
switch(true)
{
	case $b>=100 AND $b<=250 :
		echo "100";
	break;
}

?>

قربانت
ناصر
 

I.NoBody

Active Member
با این روش میشه

PHP:
<?php

$b=150;
switch(true)
{
	case $b>=100 AND $b<=250 :
		echo "100";
	break;
}

?>

قربانت
ناصر
جناب yakoza، اینو هم تست کن :
PHP:
<?php

$b=150;
switch(true)
{
    case $b>=100 AND $b<=250 :
        echo "100";
    case $b>=120 AND $b<=250 :
        echo "110";
    case $b>=190 AND $b<=250 :
        echo "120";
    //break;
}

?>
 

yakoza

Well-Known Member
I,NoBody منظورتو نفهمیدم

ولی شکل صحیح دستوری اینجوریه

PHP:
<?php

$b=150;
switch(true)
{
    case $b>=100 AND $b<=250 :
        echo "100";
    break;
    case $b>=120 AND $b<=250 :
        echo "110";
    break;
    case $b>=190 AND $b<=250 :
        echo "120";
    break;
}

?>
 

I.NoBody

Active Member
I,NoBody منظورتو نفهمیدم

ولی شکل صحیح دستوری اینجوریه

PHP:
<?php

$b=150;
switch(true)
{
    case $b>=100 AND $b<=250 :
        echo "100";
    break;
    case $b>=120 AND $b<=250 :
        echo "110";
    break;
    case $b>=190 AND $b<=250 :
        echo "120";
    break;
}

?>
من مي دونم break به چه درد ميخوره.
من توي مثالم ميخواستم از break استفاده نكنم.
اگر اون كد رو كه نوشتم تست مي كردي، ميديدي كه هر 3 تا case اجرا ميشن در صورتي كه case سوم شرطش برقرار نيست.
به همين دليل فكر ميكنم راه شما كمي مشكل داره.
البته جسارته ها استاد! :wink:
 

Webber

Well-Known Member
سلام دوستان
PHP:
<?php
switch ($i) {
case 0:
    echo "i equals 0";
case 1:
    echo "i equals 1";
case 2:
    echo "i equals 2";
}
?>
در منوال php نوشته در کد بالا اگر $i مشاوی 0 باشد باز هم تمام دستورات echo اجرا خواهند شد.اگر $i مساوی 1 باشد php دو دستور آخر echo را اجرا می کند.فقط در صورتی نتیجه ی درست نمایش داده خواهد شد که $i مساوی 2 باشد.
این نکته ی مهمی بود که نباید فراموش کرد.
موفق باشید
 

yakoza

Well-Known Member
من مي دونم break به چه درد ميخوره.
من توي مثالم ميخواستم از break استفاده نكنم.
اگر اون كد رو كه نوشتم تست مي كردي، ميديدي كه هر 3 تا case اجرا ميشن در صورتي كه case سوم شرطش برقرار نيست.
به همين دليل فكر ميكنم راه شما كمي مشكل داره.
البته جسارته ها استاد! :wink:

مشکل از روش من نیست

PHP:
<?php
$b=100;
switch($b)
{
	case 100 :
		echo "100";
	case 200 :
		echo "200";
}

?>

اینو تست کن
 

MIMi King

Member
کلا ساختار سوئیچ چنین است که باید برک داشته باشد تا فرامین بعدی متوقف شود و کیس ها از هم جدا شوند.
اگر نمی خواهید از برک استفاده کنید تنها راه چاره if هستش.
 

MIMi King

Member
از این کد استفاده کن:
PHP:
<?php
$number='100';
if($number >= 90 && $number <= 110) {
    echo 'Number is between 90 and 110';
    }
if($number >= 110 && $number <=120) {
    echo 'Number is between 110 and 120';
    }
?>

خروجی:
PHP:
Number is between 90 and 110
 

Omid PLUS

Member
مگه Break باشه چی می شه ؟ مشکلی داره که نباید باشه ؟

نبود Break باعث میشه که دستورات تا هرجا که Break نیست ادامه پیدا میکنه حتی اگه شرطش برقرار نباشه. اگر هم هیچ Break نباشه تا آخر رو اجرا میکنه.:cool:

Case فقط شروع اجرای دستورات رو مشخص میکنه و رسیدن به Case بعدی باعث تمام شدن اجرای کد نمیشه. Break باعث تمام شدن اجرای کد موجود در Switch میشه.:)
این مزیت دستور Switch حساب میشه که تو همه زبان های برنامه نویسی هم همینجوریه:rose:
 

جدیدترین ارسال ها

بالا