0

我正在我的 PHP 函数之外创建一个数组并在函数内部调用 global,但我的函数看不到该数组。该函数也被递归调用。知道我做错了什么吗?

    $node_types = array( 1 => 'testproject',
                         2 => 'testsuite',
                         3 => 'testcase');


function get_subtree($node_id,&$node_list) {

    global $node_types;

    foreach ($node_types as $key)  { 
        echo("node_types: " . $key . "<BR>"); 
    }

    ....

    get_subtree($node_id,$node_list);
} 

我的错误:

Notice: Undefined variable: node_types in ...

谢谢

4

4 回答 4

4

global $node_types;

在数组定义之上以及函数内部。

于 2012-04-11T14:10:23.437 回答
1

在函数中声明数组会在每次使用函数时创建一个新数组,并且数组的范围只有函数的长度。全局数组必须在函数之外声明。所以在这种情况下应该放在例子的前面。

于 2012-04-11T14:23:25.600 回答
0

不要在函数中使用全局 $node_types。它将创建新变量,因此您的函数将使用 null 变量而不是全局变量。

于 2012-04-11T14:06:09.907 回答
-5

我的猜测,您将全局定义放在函数调用之后。

于 2016-02-23T14:04:10.480 回答