全局数组的PHP读取位置

全局数组的PHP读取位置,php,arrays,global,Php,Arrays,Global,我在全局范围内有一些数组 比方说 $t[0][1] = "a"; 如何从函数访问位置 function fc(){ echo /* $t[0][1]*/ } 我读了一些关于全局变量的文章,但我没有找到解决方案,每个指南都是针对单个变量的 尝试: echo $GLOBALS['t[0][1]']; echo $GLOBALS['t'][0][1]; echo $GLOBALS['t']['0']['1']; 还是试过这个 $t[0][1] = "a"; function fc(){

我在全局范围内有一些数组 比方说

$t[0][1] = "a";
如何从函数访问位置

function fc(){
   echo /* $t[0][1]*/
}
我读了一些关于全局变量的文章,但我没有找到解决方案,每个指南都是针对单个变量的

尝试:

echo $GLOBALS['t[0][1]'];
echo $GLOBALS['t'][0][1];
echo $GLOBALS['t']['0']['1'];
还是试过这个

$t[0][1] = "a";
function fc(){
   global $t
   echo  $t[0][1];
}
但没有一个奏效。。。。 有什么帮助吗


提前感谢:)

您有两个选择,其中一个已在@Akintunde的评论中提到

将其作为参数传递:

function fc($arr) {
  print_r($arr);
}
fc($t);
如果要修改它,请通过引用传递:

function fc(&$arr) {
  $arr[0] = 'test';
}
fc($t);
echo $t[0];
您已经提到了全局方法,由于作用域的原因,该方法可能无法工作,请参阅:。但是我强调得太多了,无论如何都应该避免使用
global
$GLOBALS
,这是一种糟糕的编程实践,会给您带来很多麻烦

另一种使变量不在外部应用程序范围内的方法是将所有内容放入自己的静态类中,这将防止意外的变量重用

class MyClass
{
  private static $t = [];

  public static function set($index, $value)
  {
    self::$t[$index] = $value;
  }

  public static function get($index)
  {
    return self::$t[$index];
  }
}

MyClass::set(0, 'test');
echo MyClass::get(0) . "\n";

如果您想确保您的类不会与现有类发生冲突,请将其命名为:

您有两个选项,其中一个已在@Akintunde的评论中提到

将其作为参数传递:

function fc($arr) {
  print_r($arr);
}
fc($t);
如果要修改它,请通过引用传递:

function fc(&$arr) {
  $arr[0] = 'test';
}
fc($t);
echo $t[0];
您已经提到了全局方法,由于作用域的原因,该方法可能无法工作,请参阅:。但是我强调得太多了,无论如何都应该避免使用
global
$GLOBALS
,这是一种糟糕的编程实践,会给您带来很多麻烦

另一种使变量不在外部应用程序范围内的方法是将所有内容放入自己的静态类中,这将防止意外的变量重用

class MyClass
{
  private static $t = [];

  public static function set($index, $value)
  {
    self::$t[$index] = $value;
  }

  public static function get($index)
  {
    return self::$t[$index];
  }
}

MyClass::set(0, 'test');
echo MyClass::get(0) . "\n";

如果您想确保您的类不会与现有类冲突,请为它命名名称空间:

您使用任何类型的框架吗?你也调用了这个函数,对吧?!将其作为参数传递作为参数传递:-缺少一个;在global$tDo中,您是否使用任何类型的框架?你也调用了这个函数,对吧?!将其作为参数传递作为参数传递:-缺少一个;在全球$tthanks中,这已经发挥了神奇的作用。使用和解决方案,效果良好:)谢谢,这已经完成了它的魔力。使用和解决方案,效果良好:)