PHP的获取方法奇怪地工作,我不知道如何解决

时间:2018-06-25 06:23:56

标签: php get request

我需要获取方法但无法正常工作

我的代码:

<?php
    $page = $_GET['page'] ? intval($_GET['page']) : 1;
    echo "current page : ".$page."<br/>";
?>

$ page的结果为1,但是我尝试了www.example.com/test.php?page=3

$ page的结果仍输出1。

为什么会这样?

3 个答案:

答案 0 :(得分:4)

首先,您应该检查是否设置了page,然后才能访问page

尝试一下:

if(isset($_GET['page'])){
    $page = $_GET['page'] ? intval($_GET['page']) : 1;
    echo "current page : ".$page."<br/>";
}

这是我得到的结果:

result

答案 1 :(得分:1)

您可以只修改语句,

$page = $_GET['page'] ? intval($_GET['page']) : 1;

$page = !empty($_GET['page']) ? intval($_GET['page']) : 1;

希望这会有所帮助。

答案 2 :(得分:1)

$page = $_GET['page'] ? intval($_GET['page']) : 1;

的缩写
if($_GET['page'] !== null){ $page = intval($_GET['page']); }else{ $page = 1; }

因此至少有两个错误源。可能未设置“ $ _GET ['page']”,结果为1。如果是这种情况,还会导致未知变量的错误原因。

它可能是强制转换为1的字符串-在这种情况下,不会引发任何错误。

根据您的需求,检查建议的mrustamzade之类的现有变量更有意义。

我还要检查一个这样的数字

if(isset($_GET['page']) && is_numeric($_GET['page'])){
    $page = intval($_GET['page']);
}else{ $page = 1; }
echo "current page : ".$page."<br/>";