มีวิธีการใช้ตัวดำเนินการ 'หรือ' หรือเทียบเท่าในสวิตช์ PHP หรือไม่?
ตัวอย่างเช่นสิ่งนี้:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
มีวิธีการใช้ตัวดำเนินการ 'หรือ' หรือเทียบเท่าในสวิตช์ PHP หรือไม่?
ตัวอย่างเช่นสิ่งนี้:
switch ($value) {
case 1 || 2:
echo 'the value is either 1 or 2';
break;
}
คำตอบ:
switch ($value)
{
case 1:
case 2:
echo "the value is either 1 or 2.";
break;
}
สิ่งนี้เรียกว่า "การตกลงมา" บล็อกเคส คำนี้มีอยู่ในภาษาส่วนใหญ่ที่ใช้คำสั่ง switch
หากคุณต้องใช้||
ด้วย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;
}
ฉันจะไม่โพสต์คำตอบอื่น ๆ เพราะพวกเขาทั้งหมดถูกต้อง แต่ฉันแค่เพิ่มว่าคุณไม่สามารถใช้สวิตช์สำหรับคำสั่ง "ซับซ้อน" เพิ่มเติมเช่นเพื่อทดสอบว่าค่าเป็น "มากกว่า 3" หรือไม่ ระหว่าง 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;
}
แต่อย่างที่ฉันพูดฉันจะใช้if
ข้อความที่นั่น
switch()
และเมื่อฉันทำงานในภาษา C-ish ที่ฉันคิดถึงจริงๆSelect Case
ซึ่งเป็นวิธีจดชวเลขอย่างแท้จริง "มีขนาดใหญ่ บล็อกของถ้าอื่นถ้าอื่น - ถ้า ... ที่นี่ "
you can't use switch for more "complicated" statements
มันcan't
หรือมันคือshouldn't
อะไร? เพราะในตัวอย่างของคุณคุณcan
switch (true)
นี้ไม่ใช่กรณีการใช้งานปกติของสวิตช์
ลองด้วยตัวอย่างต่อไปนี้ในบทความนี้: http://phpswitch.com/
กรณีสวิตช์ที่เป็นไปได้:
(ผม). คำสั่งเปลี่ยนง่าย
คำสั่งเปลี่ยนเป็นมหัศจรรย์และมหัศจรรย์ เป็นส่วนหนึ่งของภาษาที่ให้คุณเลือกระหว่างตัวเลือกที่แตกต่างกันสำหรับค่าและเรียกใช้ส่วนต่าง ๆ ของรหัสตามค่าที่ตั้งไว้
แต่ละตัวเลือกที่เป็นไปได้จะได้รับจากกรณีในงบสลับ
ตัวอย่าง:
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;
(สาม). การใช้ทางเลือกหลายกรณี
เนื่องจากสวิตช์จะยังคงใช้งานรหัสจนกว่าจะพบการหยุดพักจึงเป็นเรื่องง่ายพอที่จะใช้แนวคิดเรื่องการตกหล่นและเรียกใช้รหัสเดิมมากกว่าหนึ่งกรณี:
ตัวอย่าง:
กรณีที่ 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;
}
ฉันคิดว่านี่อาจช่วยคุณแก้ปัญหาของคุณได้
ลอง
switch($value) {
case 1:
case 2:
echo "the value is either 1 or 2";
break;
}
ฉันแนะนำให้คุณอ่าน 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;
}
คำอธิบาย
เช่นเดียวกับค่าที่คุณใช้ในการรันคำสั่งเดี่ยวคุณสามารถใส่มันได้โดยไม่ต้องหยุดพักเป็นจนกว่าหรือจนกว่าจะพบว่ามีการหยุดพักมันจะทำการรันโค้ดและหากพบว่ามีการหยุดพัก
ใช้รหัสนี้:
switch($a) {
case 1:
case 2:
.......
.......
.......
break;
}
บล็อกเรียกทั้ง 1 และ 2
switch ($value)
{
case 1:
case 2:
echo 'the value is either 1 or 2';
break;
}
http://php.net/manual/th/control-structures.switch.php ตัวอย่าง
$today = date("D");
switch($today){
case "Mon":
case "Tue":
echo "Today is Tuesday or Monday. Buy some food.";
break;
case "Wed":
echo "Today is Wednesday. Visit a doctor.";
break;
case "Thu":
echo "Today is Thursday. Repair your car.";
break;
default:
echo "No information available for that day.";
break;
}
วิธีที่ดีที่สุดคือถ้ามีการร้องขอ นอกจากนี้ยังสามารถใช้งานได้ง่ายและชัดเจน
ตัวอย่าง:
<?php
$go = $_REQUEST['go'];
?>
<?php if ($go == 'general_information'){?>
<div>
echo "hello";
}?>
แทนที่จะใช้ฟังก์ชั่นที่ใช้งานไม่ได้กับ PHP โดยเฉพาะเมื่อคุณมี PHP เป็น HTML