在php函数中同时使用所有全局变量

在php函数中同时使用所有全局变量,php,function,variables,global,globals,Php,Function,Variables,Global,Globals,我有一个包含大约50个全局变量的php脚本。 我有大约18个函数需要全局变量 在大多数函数中,我需要将近40个全局变量。 我现在将其包括为: function example1() { global $1, $2, $3, ..... $40; } function example2() { global $1, $2, $3, ..... $40; } 有没有更简单的方法 例如,一次包含所有全局变量 也许是阵列 我希望

我有一个包含大约50个全局变量的php脚本。 我有大约18个函数需要全局变量

在大多数函数中,我需要将近40个全局变量。 我现在将其包括为:

      function example1() {
      global $1, $2, $3, ..... $40;
      }

      function example2() {
      global $1, $2, $3, ..... $40;
      }
有没有更简单的方法

例如,一次包含所有全局变量

也许是阵列


我希望听到一些好的建议

我把很多变量交给了global。我现在了解到,我必须在&to-for-each循环中直接修改数组中的数据,而不是声明它们并尝试将它们交给全局变量

为了能够直接修改循环中的数组元素,请在$value之前加上&。在这种情况下,将通过引用指定值

      <?php
      $arr = array(1, 2, 3, 4);
      foreach ($arr as &$value) {
          $value = $value * 2;
      }
      // $arr is now array(2, 4, 6, 8)
      unset($value); // break the reference with the last element
      ?>


谢谢你的帮助!我可以删除很多代码和变量…

您可以简单地包括所有全局变量

function myFunc() {
  foreach ($GLOBALS as $n => $v) {
     global $$n;
  }
  ... code using any global variable
}
或者您可以包含自己预定义的子集

$myGlobals = array('n1','n2');

function myFunc() {
  foreach ($GLOBALS['myGlobals'] as $n) {
     global $$n;
  }
  ... code using any global variable named in $myGlobals
}

PHP有一个提取函数,它使用数组中的所有元素的键将其转换为变量,也就是说,由于$GLOBALS变量包含所有全局变量,所以只需在函数中提取它

$name = 'John Doe';
function myFunction(){
  extract($GLOBALS);
  echo $name;
}

在会话中保存这些全局变量。只是不,不!不要这样做你有什么建议?首先,不要这样做。我不知道你想做什么,但这是最糟糕的解决方案。如果您仍然需要,请将所有这些变量放入数组中,而只使用一个全局数组。由于您似乎将自己编码到了一个黑暗的角落,因此,始终存在全局可用的$GLOBALS数组一个关联数组,其中包含对当前在全局范围中定义的所有变量的引用