php注意:第3行C:\xampp\htdocs\includes\middle.php中的未定义索引:id

php注意:第3行C:\xampp\htdocs\includes\middle.php中的未定义索引:id,php,Php,我正在创建一个网站,当我访问www.mydomain.org时,被抛出了这个错误。 此代码在转到时起作用 我不希望人们必须输入/index.php?id=home,如何解决这个问题 <div id="middle_main"> <?php $page = $_GET['id']; if ($page == "") { include "pages/home.html"; } else { includ

我正在创建一个网站,当我访问www.mydomain.org时,被抛出了这个错误。 此代码在转到时起作用

我不希望人们必须输入/index.php?id=home,如何解决这个问题

<div id="middle_main">
    <?php   
          $page = $_GET['id']; 
          if ($page == "") { include "pages/home.html"; } 
          else { include "pages/$page.html"; } 

    ?>
</div>

检查是否已设置,如果未设置,请将其设置为“主页”:

$page = isset($_GET['id']) ? $_GET['id'] : 'home';
那么您就不需要if语句来检查它是否已设置:

include "pages/$page.html";
注意事项在PHP开发中是最新的,它们不是错误,这意味着您不必修复它们。然而,这是一个很好的做法

“未定义索引”通知警告您正在尝试读取尚未初始化的数组索引。在本例中,您尝试读取$\u GET数组的主索引。当您的URL是something.php?home=something时,$\u GET['home']将自动初始化,并且不会显示任何通知。但是,当您访问something.php时,没有设置此索引,这就解释了注意事项

在代码中,您需要检查是否设置了此索引,并在未设置时为其指定一个默认值

$page = isset($_GET['home']) ? $_GET['home'] : 'home';

在这种情况下,如果未设置主索引,$page将设置为home。看看你是否想了解更多关于三元运算符的知识?还有:我刚刚用过。

这会对你有帮助的。啊,非常感谢。实际上我仍然需要if语句。如果删除它,它会抛出一个语法错误,但它会按照我所希望的方式处理您添加的行。您不应该再需要if语句来检查变量是否有值。不过,您需要检查该值是否是站点的“有效部分”。什么时候通知才是PHP开发中的最新内容?我想这是我的经验,我记得在通知实现之前很久就使用过PHP了,我也没那么老。随着PHP6Alpha的推出,可能已经有一段时间了。。。不管怎样,那还不算老:p