在另一个文件中使用嵌套函数中的一个文件中的数组

时间:2014-04-10 18:29:07

标签: php arrays

我有一个包含关联数组的PHP文件。我将它们全部放在一个文件中,以便于编辑/更新。例如:

$ass_first = array(      "title"=>"Title",
                            "first_name"=>"First Name",
                            "surname"=>"Surname",
                            "phone"=>"Phone Number",
                            "email"=>"Email Address",
                            "add1"=>"House Name/Number",
                            "add2"=>"Street",
                            "add3"=>"Town",
                            "add4"=>"City",
                            "add5"=>"Post Code"
                            );  

在另一个文件中,我有传递变量的函数,这些函数又调用其他函数。

例如,我有一个函数被调用来创建一个包含表单输入的表。在这个函数中,有一个测试,看看需要什么样的表单输入,并调用必要的函数。

function create_table($titles, $id) { //$titles is the relevant array from lists.php, $id is the id of the containing div

    $select = array('timescale','bus_route','train_stat');  //'select' id list

foreach ($titles as $k=>$v) { //$k is the database/id/name $v is the description text
    if (in_array($k,$select)){
        select_box($k,$v);
    }
    else if //input is a text area
        text_box($k,$v);
    }
    else{ //input is a checkbox
        check_box($k,$v);
    }
}

}

在这三个'嵌套函数'中,我想引用lists.php文件中包含的一些数组。

我想知道将这些数组添加到函数范围的最佳方法。我被告知变量变量不是最好的方法,也不是声明全局变量。我想不出任何其他方式去做!

同样将它们作为变量传递给函数也不是一个选项,因为三个不同的嵌套函数需要一组不同的数组,这意味着将传递三组数组,但任何时候都只能使用一组!

1 个答案:

答案 0 :(得分:0)

您可以将数组传递给create_table函数:

function create_table($titles, $id, $arrays) {
    ...
}

您可以继续使用全局变量,也可以在其上方添加注释,说明哪个文件设置变量:

function create_table($titles, $id) {
    //$arrays gets set in lists.php
    global $arrays;
    ...
}

或者你可以像这样要求你的lists.php文件:

function create_table($titles, $id) {
    require 'lists.php';
    ...
}