从Function中有效地访问大型数组

时间:2014-03-05 12:07:17

标签: php function scope

我在游戏中有以下页面结构。

第1页 callGameEngine.php (它返回游戏输出(JSON数组),$ gameInfo2return,通过ajax),就这个问题而言,我们可以看到它需要游戏引擎页面,然后发送游戏引擎相关参数......

 require 'gameEngine.php'; //includes only engine() function
$gameInfo2return = engine ($parameter1,$parameter2,ecc);
echo $gameInfo2return;//the AJAX return

第2页 gameEngine.php (引擎本身可以在长循环中产生许多变量,数组等)

其中两个ARRAYS是大型2d阵列,均为40乘60(最后一个值为数组[39] [59])这些阵列代表游戏的土地,所以地形长40公里,长60公里。 ($ bigTerrainArray)。它们被连续引用但不需要修改。因为它们非常大,所以我不想通过将它们直接传递给函数来生成它们的副本,而是希望将它们作为全局变量来访问它们。

$bigTerrainArray = (array 40x60);

此页面还使用了另一个页面engineFunctions.php,

require 'engineFunctions.php'; //including a function lets call bomb().
$goodBomb = bomb($xCoOrd,$yCoOrd);

第3页 engineFunctions.php * *这里有问题...不能将大数组作为变量传递给我想要以全局变量访问它们。但是这里的一个功能不会理解全局...所以我该怎么办?

function bomb ($xCoOrd,$yCoOrd){

    global $bigTerrainArray;
etc etc etc

}

问题是

1 范围,因为这个结构不起作用,变量$ bigTerrainArray无法通过global访问,因为这样的嵌套函数然后调用global不会工作,所以如何访问$ bigTerrainArray ?

2 效率,继续访问$ bigTerrainArray的最有效方法是什么?

0 个答案:

没有答案