我想知道最快的方法是做以下事情:
if ($var == 1) {
// 1
}
if ($var == 2) {
// 2
}
if ($var == 3) {
// 3
}
等,但最后有类似的东西:
if ($var != 1 or 2 or 3) {
//Not a number
}
我在考虑最后发表if(in_array(...))
声明,但想知道你的想法。
答案 0 :(得分:6)
我会使用switch
switch ($var) {
case 0:
echo "var equals 0";
break;
case 1:
echo "var equals 1";
break;
case 2:
echo "var equals 2";
break;
default:
echo "var is not 0 1 or 2"
}
此外,如果您错过break
语句,那么您可以在$var == 1 || $var == 2
,read more
答案 1 :(得分:1)
如果您只想知道“$ var”是否在您的集合{1,2,3}中,那么in_array就可以了。
否则,如果你想知道你有哪个(如果有的话)值,那么我会这样做:
if ($var == 1) {
// 1
}
else if ($var == 2) {
// 2
}
else if ($var == 3) {
// 3
}
else {
}
请注意“else if”,以免您重新检查已知的内容。
另请注意,PHP 4和5也有一个“switch”case / block:
switch ($i) {
case 1:
// 1
break;
case 2:
// 2
break;
case 3:
// 3
break;
default:
...
}
答案 2 :(得分:1)
或者使用开关盒,这在很多情况下都可以阅读:
switch($var) {
case 1: /*1*/ break;
case 2: /*2*/ break;
case 3: /*3*/ break;
default: /*not 1 not 2 not 3*/
}
答案 3 :(得分:0)
使用if/else if/else
,您可以使用switch
来判断严格或松散的比较是否合适。
使用if
时,它始终是松散的比较,这就是我更喜欢if ($var === 1) {
// 1
}
else if ($var === 2) {
// 2
}
else if ($var === 3) {
// 3
}
else {
//neither 1, 2 nor 3
}
语句的原因,因为它使得它明确选择了什么模式。
{{1}}