分页问题(PHP超全局变量问题,未定义索引)

分页问题(PHP超全局变量问题,未定义索引),php,Php,我试图在某个地方实现分页,但我遇到了以下问题: 我有此部分要更改链接: echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> "; 它说的是未定义的索引。。 为什么会出现这个错误? 谢谢您应该引用数组索引。也可以使用html实体。 像这样 echo " <a href='{$_SERVER['SCRIPT_NAME']}?Page=$Prev_Page'>&

我试图在某个地方实现分页,但我遇到了以下问题:

我有此部分要更改链接:

echo " <a href='$_SERVER[SCRIPT_NAME]?Page=$Prev_Page'><< Back</a> ";  
它说的是未定义的索引。。 为什么会出现这个错误?
谢谢

您应该引用数组索引。也可以使用html实体。 像这样

echo " <a href='{$_SERVER['SCRIPT_NAME']}?Page=$Prev_Page'>&lt;&lt; Back</a> "; 

您应该引用数组索引。也可以使用html实体。 像这样

echo " <a href='{$_SERVER['SCRIPT_NAME']}?Page=$Prev_Page'>&lt;&lt; Back</a> "; 

这是因为数组中缺少索引$_GET只是一个数组,因此应该首先检查该键是否存在

$Page = (array_key_exists('page', $_GET)) ? $_GET["page"] : false;  
if($Page===false)  
{  
   //no page
   return;
}

这是因为数组中缺少索引$_GET只是一个数组,因此应该首先检查该键是否存在

$Page = (array_key_exists('page', $_GET)) ? $_GET["page"] : false;  
if($Page===false)  
{  
   //no page
   return;
}


if(!isset($\u GET['Page']){
检查页面是否已设置,您的变体希望页面已设置好确切的问题是什么?而不是
可能未设置!检查if(isset($\u GET['Page'])Luceos谢谢,这解决了第一部分,但我仍然得到未定义的索引:$Page=$\u GET[“Page”;
if(!isset($\u GET['Page'])){
检查页面是否已设置,您的变体希望页面已设置。确切的问题是什么?而不是
可能未设置!检查if(isset($\u GET[“page”])Luceos谢谢,这解决了第一部分,但我仍然得到未定义的索引:$page=$\u GET[“page”]“Excellent,这很快就解决了:)谢谢你,我几分钟后就接受了!谢谢你的否决票。我真的很讨厌+2,就像整数:)Excellent,这很快就解决了:)谢谢你,我几分钟后就接受了!谢谢你的否决票。我真的很讨厌+2,就像整数:)不引用数组键只会抛出一个warning。您仍然应该这样做,但这不是问题所在。不引用数组键只会引发警告。您仍然应该这样做,但这不是问题所在。请注意空。如果Page=0,它也会返回false,并且您可能希望接受Yw,但您的编辑与Ozi产生了相同的问题。您正在检查$\u GET['Page']在您知道密钥在那里之前,我很确定它是有效的。
if
的第二部分仅在第一部分返回true时运行,而只有在
$\u GET['page'时才会运行
不是空的。啊,是的,你是对的。它不会给出语法错误。但是,由于empty将在0上返回false,它也不会进入第二部分。又一次很好的尝试,但是如果page=0>
!empty(0),你仍然会遇到同样的问题!==false
=
!true!==false
=
false!==false
=
false
所以最后你做了一个更复杂的错误陈述。你应该使用isset(),正如您在评论中提到的,请小心使用empty。如果Page=0,它也会返回false,您可能希望接受该Yw,但您的编辑产生了与Ozi相同的问题。您正在检查$\u GET['Page']在您知道密钥在那里之前,我很确定它是有效的。
if
的第二部分仅在第一部分返回true时运行,而只有在
$\u GET['page'时才会运行
不是空的。啊,是的,你是对的。它不会给出语法错误。但是,由于empty将在0上返回false,它也不会进入第二部分。又一次很好的尝试,但是如果page=0>
!empty(0),你仍然会遇到同样的问题!==false
=
!true!==false
=
false!==false
=
false
所以最后你做了一个更复杂的错误陈述。你应该使用isset(),就像你在评论中提到的那样
// empty() works even if the variable doesn't exist, kind of like isset()
if(!empty($_GET['Page']) !== false) {
    // Do stuff
    $page = $_GET['Page'];
}