从函数调用时返回0的数组

时间:2012-06-21 22:32:25

标签: php function for-loop return call

在开始之前,我应该让你知道我在PHP方面几乎没有经验。事实上,我上周才开始使用它,所以我正在使用它,好像它是JavaScript或其他东西。

无论如何,我正试图通过PHP在我的网站上尽可能地尽可能地简化动态内容服务,并且我知道如何。

所以,我这样做:

  1. 创建我正在使用的每个网址变量的数组。
  2. 查询IDPage(),其中包含循环遍历数组的FOR循环,将索引位置与当前URL变量进行比较,并返回索引位置(如果匹配)。
  3. 使用返回的字符串来决定要包含哪些内容。
  4. 预<!DOCTYPE>

    <?php
        $root = $_SERVER["DOCUMENT_ROOT"];
        $array_IDs = array("404", "home", "item2", "item3", "item4");
        global $root, $array_IDs;
    ?>
    

    &LT; HEAD&GT;

    <?php
        function IDPage(){
            for ($i = 0; $i < count($array_IDs); $i++){
                if (isset($_GET[$array_IDs[$i]])){
                    return $array_IDs[$i];
                }
            }
        }
    ?>
    

    &LT;身体GT;

    <article>
        <?php 
            $response = IDPage();
    
            if ($response == "404"){
                include($root . "/path/file.ext");
            }
    
            if ($response == "home"){
                include($root . "/path/file.ext");
            }
    
            if ($response == "item2"){
                include($root . "/path/file.ext");
            }
    
            if ($response == "item3"){
                include($root . "/path/file.ext");
            }
    
            if ($response == "item4"){
                include($root . "/path/file.ext");
            }
        ?>
    </article>
    

    使用当前设置,数组总是返回0,并且稍微挖掘一下,这似乎是因为count()认为$array_IDs没有值。然而,如果您将FOR循环放在与<body>相同的块中(并且修改代码以便在同一块中工作),这是有效的。

    同样,我知道这是粗糙的,但它只是一个小网站,我不知道更好,我不认为我已准备好进入数据库和所有这些。但是,如果有人有更好的想法,只要我有能力,请随时告诉我。 :L

1 个答案:

答案 0 :(得分:1)

在函数中使用global关键字在函数中导入该变量:

function IDPage(){
    global $array_IDs;
    for ($i = 0; $i < count($array_IDs); $i++){
        if (isset($_GET[$array_IDs[$i]])){
            return $array_IDs[$i];
        }
    }
 }