我在函数之外创建了一个数组,这意味着它应该具有全局范围。然后我尝试从一个函数中循环它,该函数应该可以访问全局创建的数组,但是当我尝试这样做时会抛出一个错误。
$form_fields = array(
'name',
'locality',
'url_slug',
'address');
function step_1() {
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
step_1();
我收到以下错误:
未定义变量:form_fields - 第10行
我想避免使用global关键字或者必须添加数组作为函数的参数,因为我只想读取数组而不是更改它。
如何从step_1()函数中访问全局创建的$ form_fields数组?
答案 0 :(得分:2)
你需要在函数中定义全局到$ form_fields。
像这样:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $form_fields . '<br />';
}
}
答案 1 :(得分:2)
在你的循环中,你想使用$field
作为回声而不是$form_fields
。如果您不想使用global关键字:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
然后唯一的另一种可能性是访问$_GLOBALS
集合:
function step_1() {
foreach($_GLOBALS["form_fields"] as $field) {
echo $field . '<br />';
}
}
希望这能回答你的问题。