更有效地编写以下if语句的最佳方法是什么?
if (!preg_match('/^[0-9]+$/', $min) || !preg_match('/^[0-9]+$/', $max) || !preg_match('/^[0-9]+$/', $c1) || !preg_match('/^[0-9]+$/', $c2) || !preg_match('/^[0-9]+$/', $c3) || !preg_match('/^[0-9]+$/', $c4) || !preg_match('/^[0-9]+$/', $c5) || ) { echo 'Wrong value" exit; };
提前致谢!
顺便说一下,我正在验证整数......整数!
答案 0 :(得分:3)
怎么样:
$tests = array($min, $max, $c1, $c2, $c3, $c4, $c5);
if (count(preg_grep('/^\d+$/', $tests, PREG_GREP_INVERT)) > 0) {
echo 'Wrong value';
exit;
}
preg_grep()
docs \d
序列而不是字符类。答案 1 :(得分:1)
请勿使用正则表达式,只需使用is_numeric
http://php.net/manual/en/function.is-numeric.php
或类似的东西
is_int( $myvar + 0 )
答案 2 :(得分:1)
这应该为您提供一个概念性的概念,说明如何以更简洁的方式测试输入变量。
switch(false)
{
case is_int($min):
case is_int($max):
case is_int($c1):
case is_int($c2):
case is_int($c3):
case is_int($c4):
case is_int($c5):
echo "Wrong value";
break;
default:
break;
}