无法访问全局PHP数组变量

kas*_*ord -1 php global-variables drupal-6

在Drupal模块回调函数中,有一个简单的自定义函数可以进入数组.

当我在Drupal模块回调函数中定义输入数组时,自定义函数正确执行.但是,当我在根级别(全局)定义输入数组时,Drupal模块回调函数中的自定义函数将失败.

作为测试,我使自定义函数只是将输入数组的内容输出为字符串.第一种方法正确输出,而第二种方法没有任何输出.理想情况下,我想在全局级别定义数组,以便其他函数可以使用它.

思考?

<?php

// ** Placement of array for method 2
$mapping = array(
    0 => "name",
    1 => "match"
);

function mymodule_menu() {
    $items = array();

    $items['mymodule'] = array(
        'title' => 'MyModule',
        'page callback' => 'myModule_main',
        'access callback' => TRUE,
        'type' => MENU_NORMAL_ITEM
    );

    return $items;
}

function myModule_main() {

    // ** Placement of array for method 1
    $mapping = array(
        0 => "name",
        1 => "match"
    );

    $output = myFunction($mapping);

    echo $output; // ** Returned to client side via AJAX
}
Run Code Online (Sandbox Code Playgroud)

mcr*_*ley 5

您需要使用global关键字将全局变量"导入"到函数的作用域中.

http://php.net/manual/en/language.variables.scope.php#language.variables.scope.global

function myModule_main() {
    global $mapping;
    ...
}
Run Code Online (Sandbox Code Playgroud)