在ctype_digit()
这样的comparison operator
中使用if statement
是否有任何意义
if ($_GET['x'] > 0 && ctype_digit($_GET['x'])) {
echo 'It is a Number';
}
答案 0 :(得分:1)
不是真的。来自the manual(强调我的):
如果您将数字与字符串进行比较或比较涉及数字字符串,则将每个字符串转换为数字,并以数字方式执行比较。
因此,如果x
是“非数字字符串”,那么您的第一次检查将失败并使条件短路,从而使ctype_digit()
在这种情况下变得多余。
但是,请注意此转换。例如,123abc
将在第一次检查时返回true(因为对于比较,使用了123
),因此根据其严格程度,可能会进行彻底检查。
$s = "123abc";
var_dump($s > 0); // true
答案 1 :(得分:-2)
是的,如果您想确保输入是十进制数并且大于零
,则可能