我正在尝试提取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
答案 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会转换为1
。 isset()
函数仅用于检查变量是否已设置
答案 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 }
}