尝试将查询字符串转换为变量,但仅限于它是整数。
代码可能比它应该更复杂但是这是我要做的事情 -
//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;}
我哪里错了?
答案 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;