我正在PHP函数外部创建一个数组并在函数内调用全局,但我的函数无法看到该数组。 该函数也被递归调用。 知道我做错了什么吗?
$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 ...
谢谢
Put
global $node_types;
在数组定义之上以及函数内部。
在函数中声明数组将在每次使用该函数时创建一个新数组,并且数组的作用域仅与函数一样长。全局数组必须在函数外部声明。所以在这种情况下应该放在他的例子的顶部。
不要在函数中使用全局 $node_types。它将创建新变量,因此您的函数将使用 null 变量而不是您全局拥有的变量。
我的猜测是,您将全局定义放在函数调用之后。