我想知道最快的方法是执行以下操作:
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(...))
在最后发表一个声明,但想知道你的想法。
我想知道最快的方法是执行以下操作:
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(...))
在最后发表一个声明,但想知道你的想法。
我会这样做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
,阅读更多
或者使用 switch case,这在很多情况下更容易阅读:
switch($var) {
case 1: /*1*/ break;
case 2: /*2*/ break;
case 3: /*3*/ break;
default: /*not 1 not 2 not 3*/
}
如果您只想知道 "$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:
...
}
使用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
}