对于类似以下$p = $_GET['page']
在以下情况下
if ($p > 0)
if ($p < 0)
if ($p >= 0)
if ($p <= 0)
if ($p == 0)
与
相同吗?if (ctype_digit($p)){//Logic}
//or...
if (is_numeric($p)){//Logic}
答案 0 :(得分:0)
我的建议是传递正确的作业数据类型。因此,如果您需要将数字传递给此代码。
如果您无法控制传递的内容,请先检查它是什么。这使您在代码开始中断时再看一下。我会使用is_numeric
,因为它知道负片和浮点数不像ctype_digit
is_numeric("-10"); //TRUE
ctype_digit("-10"); //FALSE
is_numeric("12.10"); //TRUE
ctype_digit("12.10"); //FALSE
所以最后你会想做类似的事情:
$p = $_GET['page'];
if(is_numeric($p)){
$p = (int)$p;
//Do stuff with an int
} else {
//Not sure what should happen here...
}
PHP非常灵活,可以为我们投射,但是当你尝试在你的代码中找到一个错误时,很难找到你表现得很好的一切,if($p>0){}
似乎你知道你有一个号码,我会继续寻找其他地方。