PHP получить метод странно работает, я не знаю, как решает - PullRequest
0 голосов
/ 25 июня 2018

Мне нужен метод get, но он не работает

мой код:

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

и

$ страницы результат равен 1. но я пытаюсь www.example.com/test.php?page=3

$ page's результат по-прежнему выводится 1.

Почему это происходит?

Ответы [ 3 ]

0 голосов
/ 25 июня 2018

Вы можете просто изменить оператор,

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

на

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

Надеюсь, это поможет.

0 голосов
/ 25 июня 2018
$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/>";
0 голосов
/ 25 июня 2018

Сначала вы должны проверить, установлено ли page, затем вы можете получить доступ к page

, попробуйте это:

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

вот результат, который я получаю:

result

...