2008-10-16 14 views

उत्तर

395
switch ($value) 
{ 
    case 1: 
    case 2: 
     echo "the value is either 1 or 2."; 
    break; 
} 

यह कहा जाता है मामला ब्लॉक "के माध्यम से गिरने"। स्विच स्टेटमेंट लागू करने वाली अधिकांश भाषाओं में यह शब्द मौजूद है।

13

प्रयास करें

switch($value) { 
    case 1: 
    case 2: 
     echo "the value is either 1 or 2"; 
     break; 
} 
45

मैं अन्य उत्तर repost नहीं होगा क्योंकि वे सब सही हो, लेकिन मैं तो बस जोड़ देंगे कि आप अधिक "जटिल" बयान, उदाहरण के लिए स्विच का उपयोग नहीं कर सकते हैं: करने के लिए परीक्षण करें कि कोई मान "3 से 6", "4 से 6" के बीच है, आदि। यदि आपको ऐसा कुछ करने की ज़रूरत है, तो if कथन का उपयोग करने के लिए चिपके रहें, या switch के लिए विशेष रूप से मजबूत आवश्यकता है तो इसका उपयोग करना संभव है पीछे की ओर:

switch (true) { 
    case ($value > 3) : 
     // value is greater than 3 
    break; 
    case ($value >= 4 && $value <= 6) : 
     // value is between 4 and 6 
    break; 
} 

लेकिन जैसा कि मैंने कहा, मैं व्यक्तिगत रूप सेका उपयोग करता हूंवहां बयान।

+1

यह देखने के लिए खुशी हुई कि आपने इस मामले में स्विच() से अधिक() स्विच किया है। इस प्रकार का स्विच सिर्फ जटिलता, आईएमओ जोड़ता है। – moo

+1

हाँ, आपको इस शैली को चुनने के लिए काफी मजबूतीपूर्ण कारण होना चाहिए, लेकिन यह जानना अच्छा है कि यह संभव है। – nickf

+2

मुझे यह जानकर खुशी हुई है।हर बार जब मैं बेसिक-वाई भाषा में एक प्रोजेक्ट बनाता हूं, मुझे सी-स्टाइल 'स्विच()' याद आती है, और जब मैं सी-ईश भाषा में काम कर रहा हूं तो मुझे वास्तव में 'केस का चयन करें' याद आती है, जो वास्तव में है कहने का एक शॉर्टेंड तरीका "अगर एक बड़ा ब्लॉक है, तो अगर, और-अगर ... यहां"। –

-2

अनुरोध के साथ सबसे अच्छा तरीका हो सकता है। इसके अलावा, यह उपयोग करने के लिए आसान और स्पष्ट हो सकता है।

उदाहरण:

<?php 
$go = $_REQUEST['go']; 
?> 
<?php if ($go == 'general_information'){?> 
<div> 
echo "hello"; 
}?> 

इसके बजाय कार्यों कि PHP के साथ अच्छी तरह से काम नहीं चलेगा, आप HTML में पीएचपी है, खासकर जब का उपयोग करने का।

+4

स्विच स्टेटमेंट से यह स्पष्ट कैसे है? –

97

आप switch साथ || उपयोग करना आवश्यक है तो आप की कोशिश कर सकते हैं:

$v = 1; 
switch (true) { 
    case ($v == 1 || $v == 2): 
     echo 'the value is either 1 or 2'; 
     break; 
} 

यदि आपकी पसंद का समाधान हो गया होता नहीं

switch($v) { 
    case 1: 
    case 2: 
     echo "the value is either 1 or 2"; 
     break; 
} 

मुद्दा यह है कि दोनों विधि कुशल जब से निपटने नहीं है बड़े मामले ... कल्पना 1 से 100 यह पूरी तरह से काम करेगा

$r1 = range(1, 100); 
$r2 = range(100, 200); 
$v = 76; 
switch (true) { 
    case in_array($v, $r1) : 
     echo 'the value is in range 1 to 100'; 
     break; 
    case in_array($v, $r2) : 
     echo 'the value is in range 100 to 200'; 
     break; 
} 
इस कोड को
1

उपयोग:

switch($a) { 
case 1: 
case 2: 
    ....... 
    ....... 
    ....... 
    break; 
} 

ब्लॉक दोनों 1 और 2.

1
switch ($value) 
{ 
    case 1: 
    case 2: 
     echo 'the value is either 1 or 2'; 
    break; 
} 
9

मैं आप के माध्यम http://php.net/manual/en/control-structures.switch.php (मैनुअल)

switch ($your_variable) 
{ 
    case 1: 
    case 2: 
     echo "the value is either 1 or 2."; 
    break; 
} 

स्पष्टीकरण जाना करने के लिए सुझाव के लिए बुलाया

एक कथन को निष्पादित करने के लिए मूल्य के समान आप के रूप में ब्रेक के बिना इसे तब तक रख सकते हैं जब तक कि ब्रेक नहीं मिल जाता है, यह कोड निष्पादित करने पर होगा और अगर ब्रेक मिलेगा तो यह स्विच केस से बाहर आ जाएगा।

इस लेख में इन निम्न उदाहरणों के
33

प्रयास करें: http://phpswitch.com/

संभव स्विच मामले:

(i)। एक साधारण स्विच स्टेटमेंट

स्विच स्टेटमेंट अद्भुत और जादू है। यह उस भाषा का एक टुकड़ा है जो आपको मूल्य के लिए अलग-अलग विकल्पों के बीच चयन करने की अनुमति देता है, और उस मूल्य के आधार पर कोड के विभिन्न टुकड़े चलाता है।

प्रत्येक संभावित विकल्प स्विच स्टेटमेंट में किसी मामले द्वारा दिया जाता है।

उदाहरण:

switch($bar) 
{ 
    case 4: 
     echo "This is not the number you're looking for.\n"; 
     $foo = 92; 
} 

(ii)। परिसीमन कोड ब्लॉक

स्विच के प्रमुख चेतावनी है कि प्रत्येक मामले में अगले एक में पर चलेगा, जब तक आप इसे तोड़ने के साथ रोक है।

उदाहरण:: साधारण मामला उपरोक्त मामले 5 को कवर करने के लिए बढ़ाया गया है, तो

case 4: 
    echo "This is not the number you're looking for.\n"; 
    $foo = 92; 
    break; 

case 5: 
    echo "A copy of Ringworld is on its way to you!\n"; 
    $foo = 34; 
    break; 

(iii)। कई मामलों

के लिए fallthrough का उपयोग क्योंकि स्विच जब तक यह एक को तोड़ने, यह fallthrough की अवधारणा लेने के लिए और एक से अधिक मामले के लिए एक ही कोड चलाने के लिए पर्याप्त आसान है पाता कोड चलते रहेंगे:

उदाहरण:

मामले 2:

case 3: 
case 4: 
    echo "This is not the number you're looking for.\n"; 
    $foo = 92; 
    break; 

case 5: 
    echo "A copy of Ringworld is on its way to you!\n"; 
    $foo = 34; 
    break; 

(iv)। उन्नत स्विचिंग: स्थिति मामलों

PHP के स्विच बस आप एक विशेष चर के मूल्य पर स्विच करने की अनुमति नहीं है: आप, जब तक कि इसके लिए एक मूल्य देता मामलों में से एक के रूप में किसी भी अभिव्यक्ति का उपयोग कर सकते उपयोग करने के लिए मामला। मैं इस आप अपनी समस्या को हल करने में मदद मिल सकती लगता है

switch(true) 
{ 
    case (strlen($foo) > 30): 
     $error = "The value provided is too long."; 
    $valid = false; 
    break; 

    case (!preg_match('/^[A-Z0-9]+$/i', $foo)): 
     $error = "The value must be alphanumeric."; 
    $valid = false; 
    break; 

    default: 
    $valid = true; 
    break; 
} 

: उदाहरण के लिए, यहाँ एक सरल स्विच का उपयोग लिखा सत्यापनकर्ता है:

उदाहरण।

+0

क्या आपके पास उदाहरण के लिए कोई वास्तविक दुनिया उपयोग-मामला है (iv)? –

+0

नहीं, मेरे पास अभी नहीं था @ पेड्रोमोरेरा –

संबंधित मुद्दे