PHP-检测确定数的方法


PHP - method for detect certains number

我想检测变量是0、1、2、3还是4。如何使用preg_match()?它和if($var==0||$var==1||$var==2||$var==3||$var==4)之间的性能如何?

if (in_array($var, range(0,4), true)) {
 // good
}

第三个参数将进行严格的比较,因此$var必须是整数

直接比较绝对比使用preg_match() 快得多

if (is_int($var) && $var<=4 && $var>=0){
 //Access granted
}

preg_match就是这样做的。

 /^[0-4]$/
 if (preg_match('/^[0-4]$/', $var)) {
    echo $var . " is ok";
 } else {
    echo $var . " is NOT ok";
 }

在线演示

进行直接比较几乎总是比regex快。即使不是在这种情况下(任何速度优势都可以忽略不计),我仍然会避免它,因为regex往往不那么简单。