使用类型转换
与 PHP 中的许多事情一样,有很多方法可以实现相同的最终目标,检查变量是否为数字也是如此。
有些方式比其他方式鲜为人知。
我们还可以使用类型转换检查变量,它的工作原理是将 int 软件包在变量前面的括号中,然后使用类型比较运算符 (===):
$number = '33'; if ($number === (int) $number) { echo 'Dealing with a number.'; } else { echo 'Not a number!'; }
上面的结果应该是:Not a number!,因为原始变量被声明为字符串。
并不是建议这样做,但对于了解类型转换很有用。
区别
乍一看,使用 is_int 和 preg_match 之间可能没有区别,但实际上是有区别的!
如果我们使用 preg_match(),我们将不会验证变量的类型。
相反,将数字声明为字符串,$number = '44'; ,以及声明为整数的数字 $number = 44; 将被接受。
如果改为使用 is_int(),则只会检查变量的类型。
要检查变量是否为数字,我们可以使用 is_int 函数,但如果我们想要进行更复杂的验证,我们也可以使用带有 preg_match 的正则表达式。
is_int() 函数之所以起作用,是因为 int 或者整数是一个数字。
检查它是使用 if 语句的简单问题:
$number = 2323; if(is_int($number)) { echo 'Dealing with a number.'; } else { echo 'Not a number!'; }
检查和验证数字的另一种方法是使用正则表达式,如果我们想要更复杂的话。
以下示例使用 preg_match 执行基本相同的验证,而不检查变量的类型:
$number = 33; if(preg_match('|^[0-9]+$|', $number)) { echo 'Dealing with a number.'; } else { echo 'Not a number!'; }
这个正则表达式 ^[0-9]+$基本上检查具有一位或者多位数字 (+) 的数字,并允许在变量中使用 0 到 9 之间的所有内容。
最后,有趣的帽子 ^ 符号标志着变量的开始,而美元符号 $标志着变量的结束。
如果我们在正则表达式中省略了开始或者结束标记,我们最终可能会允许(匹配)比预期更多的输入。
日期:2020-06-02 22:16:48 来源:oir作者:oir