PHP获取参数拉错值

时间:2014-02-28 15:58:27

标签: php isset

我正在尝试提取URL的参数并使用它来确定要在页面上显示的信息,但由于某种原因,信息读取错误。我要做的第一件事是检查下面的参数并将其分配给$ page

<?php
if(isset($_GET["page"])) {
    $page=$_GET["page"]; 
}
?>

然后我检查$ page是否等于2或3.出于某种原因,如果我回显$ page,我得到参数的正确值,但它显示不正确的信息。

<?php
if(isset($page) == '2') { ?>


DISPLAY INFO A
ECHO $PAGE RETURNS 2

<?php } elseif(isset($page) == '3') { ?>

DISPLAY INFO B
ECHO $PAGE RETURNS 3

<?php } else { something here } ?>

由于某种原因,即使$ page返回3,我收到的信息应该显示在第2页。我是否错误地引用参数? URL如下所示:

feed.php?page=3

4 个答案:

答案 0 :(得分:1)

php isset函数返回Boolean。 您应该将代码更改为:

<?php
if(isset($page) && $page== '2') {
?>
DISPLAY INFO A
ECHO $PAGE RETURNS 2
<?php } elseif(isset($page) && $page== '3') { ?>
DISPLAY INFO B
ECHO $PAGE RETURNS 3
<?php } else { something here } ?>

答案 1 :(得分:0)

这是错误的:

if(isset($page) == '2') { 

应该是

if( $page == '2') {

这似乎仅适用于页面1,因为isset($page)会返回true,其中truthy会转换为1isset()函数仅用于检查变量是否已设置

答案 2 :(得分:0)

if($page == '3')

为什么isset()?分配时已经这样做了。也许这也是:

if(isset($_GET["page"])) {
    $page = $_GET["page"]; 
} else {
    $page = '0';  // or something
}

答案 3 :(得分:0)

isset()返回TRUE / FALSE,但您将其与正常整数进行比较。 mysql中的布尔TRUE等价于整数1,但是其他测试将失败。你需要:

if (isset($_GET['page'])) {
   if ($_GET['page'] == 1) { ... 1 stuff } 
   else if ($_GET['page'] == 2) { ... 2 stuff } 
}