【发布时间】:2014-01-30 00:05:41
【问题描述】:
我有以下代码
function MaximArray($arr)
{
$GLOBALS['maxim'] = 0;
array_walk_recursive($arr,create_function('$item,$key','if($item > $GLOBALS["maxim"]) $GLOBALS["maxim"] = $item;'));
return $GLOBALS['maxim'];
}
为什么这个函数可以与 $GLOBALS['maxim'] 一起使用,但是如果我将一个变量声明为全局内部函数并使用它,它就不起作用?我了解到 $GLOBALS['a'] 和 global $a 是相等的。
全局变量 $maxim 的示例:
$maxim=0;
function MaximArray($arr)
{
global $maxim;
array_walk_recursive($arr,create_function('$item,$key','if($item > $maxim) $maxim = $item;'));
return $maxim;
}
【问题讨论】:
-
你应该问自己是否真的应该使用全局变量?
-
为什么要启用这种被禁止的功能?
-
但是没有全局变量我怎么能记住多维数组的最大值呢?
-
@aliz_andrei -
static变量可能更合适。 -
@Spudley 它也不适用于静态变量。它仅适用于 $GLOBALS。