我有一个包含关联数组的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文件中包含的一些数组。
我想知道将这些数组添加到函数范围的最佳方法。我被告知变量变量不是最好的方法,也不是声明全局变量。我想不出任何其他方式去做!
同样将它们作为变量传递给函数也不是一个选项,因为三个不同的嵌套函数需要一组不同的数组,这意味着将传递三组数组,但任何时候都只能使用一组!
答案 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';
...
}