【问题标题】:Why am I having so much trouble with this:为什么我在这方面遇到这么多麻烦:
【发布时间】:2018-12-03 21:54:31
【问题描述】:

拜托,为什么我有这么多麻烦,($menu 是一个关联数组)。它没有循环:

<?php

foreach ($menu as $menuItem => $page) {

    if (isset($_GET[''])) {
        include PAGE_PATH . "/home";
    } elseif (isset($_GET['$menuItem'])) {
        include(PAGE_PATH . "/" . "$page");
    }
}
?> 

【问题讨论】:

  • 标题需要具体。你现在所拥有的,谷歌搜索可能会找到很多类似的问题。
  • 启用错误报告。尽管$_GET[''] 可以是任何东西;您的问题不清楚您的代码的其余部分是什么。

标签: php arrays include


【解决方案1】:

不确定您对 $_GET[''] 的期望,但我怀疑这是否符合您的期望。翻转逻辑并检查真正的获取参数。此外,变量不会在单引号 ' 内解析,请使用双引号 " 或数组索引只需使用变量:

$include = "home";

foreach ($menu as $menuItem => $page) {
    if (isset($_GET[$menuItem])) {
        $include = "$page";
        // if multiple get params this will use first, remove to use last
        break;
    }
}
include(PAGE_PATH . "/$include.php"); // added .php

这是假设 $menu 看起来像:

Array
(
    [contact] => contact.php
    [about] => about.php
)

访问此页面的 URL 类似于:index.php?contactindex.php?var=1&amp;contact 等。

【讨论】:

  • 太棒了!感谢一百万个 AbraCadaver。你很准。您对我的 URL 和 $menu 数组的理解是准确的。再次感谢
猜你喜欢
  • 2011-05-13
  • 2017-08-26
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 2019-10-21
  • 1970-01-01
  • 2017-07-19
相关资源
最近更新 更多