我在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 ...
由于
答案 0 :(得分:3)
把
global $node_types;
在数组定义之上以及函数内部。
答案 1 :(得分:1)
在函数中声明一个数组将在每次使用该函数时创建一个新数组,并且该数组的范围仅与该函数一样长。必须在函数之外声明全局数组。因此,在这种情况下,应放在示例的顶部。
答案 2 :(得分:-1)
不要在函数中使用 global $ node_types 。它将创建新变量,因此您的函数将使用null变量而不是全局变量。
答案 3 :(得分:-5)
我猜,你在函数调用之后放置了全局定义。