仅在整数时获取查询字符串

时间:2011-10-06 05:08:43

标签: php

尝试将查询字符串转换为变量,但仅限于它是整数。

代码可能比它应该更复杂但是这是我要做的事情 -

  //get page number. default is 1. check is not empty and is a number      
     if (empty($_GET['pag'])) {$page = 1;}
     else if (is_int($_GET['pag'])){$page = $_GET['pag'];}
     else {$page = 1;}

我哪里错了?

3 个答案:

答案 0 :(得分:5)

您可能希望is_numeric()代替 - is_int()不会测试字符串是否为数字字符串。

if (empty($_GET['pag'])) {$page = 1;}
else if (is_numeric($_GET['pag'])){$page = (int) $_GET['pag'];}
else {$page = 1;}

答案 1 :(得分:2)

我建议,将值转换为整数:

$page = empty($_GET['pag']) ? 1 : (int) $_GET['pag'];

虽然,如果我记得很清楚,输入一个不是整数的东西会使它成为0,但你应该检查$ page是否介于两个边界之间,然后再做任何事情,因为用户也可以输入在你的网址中的?pag0。

答案 2 :(得分:2)

$page = ((isset($_GET['pag']) && is_numeric($_GET['pag'])) ? (int)$_GET['pag'] : 1;