Php 从函数高效地访问大型阵列

Php 从函数高效地访问大型阵列,php,function,scope,Php,Function,Scope,我在游戏中有以下页面结构 第1页 callGameEngine.php返回游戏输出JSON数组,$gameInfo2return,通过ajax,针对这个问题,我们可以看到它需要游戏引擎页面,然后向游戏引擎发送相关参数 require 'gameEngine.php'; //includes only engine() function $gameInfo2return = engine ($parameter1,$parameter2,ecc); echo $gameInfo2return;/

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

第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引擎本身在一个长循环中产生许多变量、数组等

其中两个阵列是大型2d阵列,都是40 x 60最后一个值是阵列[39][59]这些阵列代表游戏的土地,因此地形为40km x 60km$比格特拉纳雷。它们是连续引用的,但不需要修改。因为它们太大了,所以我不想通过将它们直接传递给函数来生成它们的副本,而是希望将它们作为全局对象进行访问

$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不能通过全局访问,因为像这样的嵌套函数然后调用全局不会起作用,所以我如何访问$bigTerrainArray


2效率,保持访问$bigTerrainArray最有效的方法是什么

你的问题很难理解。请把这个问题重新措辞,以便我们能容易地理解。一步一步地解释每件事,而不是跳槽脚本,没有人能理解这些脚本,而不知道它们的含义context@Thomas,好的,对不起。有什么特别令人困惑的地方吗?看起来像PHP3代码,太可怕了!看看PHP5,哦。使用设计模式可以提高效率,使用类可以解决作用域问题。@Dan,将all转换为OOP将是理想的解决方案,但目前还不可行。你完全混淆了你的作用域。我认为您无法以这种方式跟踪代码中发生的事情。至少在很长一段时间内不会。千万不要把范围弄乱。当您无法立即看到变量的来源时,它应该会让您的警钟响起。例如,将变量作为参数传递。永远不要使用全局。使用global表示一个可怕的范围,这是我在上一段中所说的结果。您的大多数问题都可以通过良好的面向对象设计来解决,正如@DanFromGermany已经说过的那样。