PHP get参数拉入错误的值

PHP get参数拉入错误的值,php,isset,Php,Isset,我试图拉入URL的参数,并使用它来确定页面上显示哪些信息,但由于某些原因,这些信息被读取错误。我要做的第一件事是检查下面的参数并将其分配给$page <?php if(isset($_GET["page"])) { $page=$_GET["page"]; } ?> 这是错误的: if(isset($page) == '2') { 应该是 if( $page == '2') { 这似乎只适用于1,因为isset($page)返回true,truthy将其转换为1。i

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

<?php
if(isset($_GET["page"])) {
    $page=$_GET["page"]; 
}
?>
这是错误的:

if(isset($page) == '2') { 
应该是

if( $page == '2') {
这似乎只适用于
1
,因为
isset($page)
返回
true
,truthy将其转换为
1
isset()
函数仅用于检查变量是否已设置

if($page == '3')
为什么
isset()
?当您分配它时,您已经这样做了。也许这也是:

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

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 } ?>

显示信息A
ECHO$PAGE返回2
显示信息B
ECHO$PAGE返回3
isset()
返回TRUE/FALSE,但您正在将其与普通整数进行比较。mysql中的布尔值
TRUE
相当于整数
1
,但会导致其余测试失败。您需要:

if (isset($_GET['page'])) {
   if ($_GET['page'] == 1) { ... 1 stuff } 
   else if ($_GET['page'] == 2) { ... 2 stuff } 
}
<?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 } ?>
if (isset($_GET['page'])) {
   if ($_GET['page'] == 1) { ... 1 stuff } 
   else if ($_GET['page'] == 2) { ... 2 stuff } 
}