为什么我的函数无法访问全局创建的数组?
Why does my function not have access to the globally created array?
我在函数之外创建了一个数组,这意味着它应该具有全局范围。然后我尝试从一个函数中循环遍历它,该函数应该可以访问全局创建的数组,但是当我尝试这样做时它会抛出一个错误。
$form_fields = array(
'name',
'locality',
'url_slug',
'address');
function step_1() {
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
step_1();
我收到以下错误:
Undefined variable: form_fields -- at line 10
我想避免使用 global 关键字或必须将数组添加为函数的参数,因为我只想读取数组而不更改它。
如何从 step_1() 函数中访问全局创建的 $form_fields 数组?
您需要在函数中将全局定义为 $form_fields。
像这样:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $form_fields . '<br />';
}
}
在您的循环中,您想使用 $field
作为回显而不是 $form_fields
。如果您不想使用全局关键字:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
那么唯一的另一种可能性是访问 $_GLOBALS
Collection:
function step_1() {
foreach($_GLOBALS["form_fields"] as $field) {
echo $field . '<br />';
}
}
希望这能回答您的问题。
我在函数之外创建了一个数组,这意味着它应该具有全局范围。然后我尝试从一个函数中循环遍历它,该函数应该可以访问全局创建的数组,但是当我尝试这样做时它会抛出一个错误。
$form_fields = array(
'name',
'locality',
'url_slug',
'address');
function step_1() {
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
step_1();
我收到以下错误:
Undefined variable: form_fields -- at line 10
我想避免使用 global 关键字或必须将数组添加为函数的参数,因为我只想读取数组而不更改它。
如何从 step_1() 函数中访问全局创建的 $form_fields 数组?
您需要在函数中将全局定义为 $form_fields。
像这样:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $form_fields . '<br />';
}
}
在您的循环中,您想使用 $field
作为回显而不是 $form_fields
。如果您不想使用全局关键字:
function step_1() {
global $form_fields;
foreach($form_fields as $field) {
echo $field . '<br />';
}
}
那么唯一的另一种可能性是访问 $_GLOBALS
Collection:
function step_1() {
foreach($_GLOBALS["form_fields"] as $field) {
echo $field . '<br />';
}
}
希望这能回答您的问题。