【问题标题】:function for including pages包含页面的功能
【发布时间】:2012-11-07 05:45:45
【问题描述】:

我正在尝试制作一个包含页面的功能。

事实上,一开始我使用的是检查所有页面的长代码:

if (isset($_GET]['p']) && $_GET['p']=='something') {include 'something.php'};

现在我处理了 600 多页,这段代码太长了,我想简化一下。

有时我确实有一些页面的标题就像它们被使用一样,例如 home 将对应于 accueil.php 等。

所以我做了一个数组,其中列出了所有异常:

这样:

$paramListepages = array(
    'corbeille' => array(
        'libelle'     => 'corbeille',
        'page'        => 'php/trash.php'
    ),   
    'nouveaumessage' => array(
        'libelle'     => 'nouveaumessage',
        'page'        => 'php/envoyer.php'
    ),   

等等……

在这个数组中我有大约 20 页。

现在我尝试创建一个包含页面的函数,所以这是我的代码:

function getPage($var)
{
    if (isset($var)) {
        $key = array_search($var, $paramListepages);
        if ($key == false()) {
            include('php/'.$var.'.php');    
        } else {

        }
    }
}

我不明白为什么第一部分不起作用。

我首先检查数组中是否存在 var,如果不存在,则包含与 var 对应的页面。

我仍然不知道如何做第二部分,但现在第一部分不起作用。

我没有消息错误,即使在我的 ubunto 中我激活了所有错误的显示。

在主页index.php我调用函数getPage($_GET['p'])

我们将不胜感激任何形式的帮助。

【问题讨论】:

  • false() 不是函数。将其更改为if ($key == false) {。此外,include不是函数,它是一种语言结构;所以不应该使用括号。让它include '/path/to/file.php';
  • 感谢这部分它实际上工作得很好,我已经改变了,最后一个问题是如何从第一个数组中获取页面的正确值?
  • function false(){ return false; }。那是个笑话。
  • @StasGrin:我只是想如果你传播一个函数function false(){return true;}...
  • @arkascha 试试看。通过没有错误\警告\通知。否则请参阅 wiki 中的“讽刺”标签。

标签: php arrays function include


【解决方案1】:

我建议直接访问数组中的条目:

function getPage($var) {
    if (empty($var))
        // no page specified => default page
        inlude('index.php')
    elseif (array_key_exists($var,$paramListepages))
        // page found => include it!
        include (sprintf('php/%s.php', $paramListepages[$var]['page']));
    else
        // page not found => default page
        inlude ('index.php')
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-27
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    • 2016-01-09
    相关资源
    最近更新 更多