Tôi nghĩ rằng những gì bạn cần là:
switch ($foo)
{
case 3:
case 5:
bar();
break;
case 2:
apple();
break;
}
Điều thú vị, tôi đã nghe nói rằng Perl là (hoặc thậm chí có thể có, bây giờ) giới thiệu cú pháp này, một cái gì đó dọc theo các dòng:
if ($a == 3 || 5)
Tôi không phải là big fan của cú pháp đó vì tôi đã phải viết các trình phân tích cú pháp từ vựng một chút và tin rằng các ngôn ngữ nên rõ ràng nhất có thể. Nhưng sau đó, Perl đã giải quyết tất cả các loại vấn đề này trước với những bên hông khó khăn if
s và or
vì vậy tôi nghi ngờ sẽ không có vấn đề gì với nó :-)
Tôi không biết nhiều về PHP nhưng tôi sẽ giả sử (3 || 5) để dịch sang TRUE. –
'3 || 5' dường như được đánh giá chỉ là 'true' bên trong một câu lệnh switch và do đó sẽ luôn gọi' bar() 'cho bất kỳ giá trị' $ foo' nào. –
@Mark Rushakoff - Không, so sánh lỏng giữa giá trị chuyển đổi và giá trị trường hợp được thực hiện và nếu, ví dụ: $ foo == 0 thì 3 || 5 mã trường hợp sẽ không được thực hiện. (Cũng giống như nếu (0 == (3 || 5)) sẽ giải quyết thành sai.) – GZipp