Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中调用全局动态变量_Php_Arrays_Global Variables - Fatal编程技术网

如何在php中调用全局动态变量

如何在php中调用全局动态变量,php,arrays,global-variables,Php,Arrays,Global Variables,我花了好几个小时试图找到解决方案,但我解决不了(我不是程序员;)) 在一个函数上,我设置了一个动态数组,我想在另一个函数中使用它。 为此,我想使用$GLOBALS[]数组 我可以从函数1中调用变量,但是当我尝试在函数2中使用它时,它不起作用 这是我的密码: function one($name,$a,$b,$c) { // $GLOBALS[${$name}] = array($a,$b,$c); global $$name; $$name = array($a,$b,$c); } fun

我花了好几个小时试图找到解决方案,但我解决不了(我不是程序员;))

在一个函数上,我设置了一个动态数组,我想在另一个函数中使用它。 为此,我想使用$GLOBALS[]数组 我可以从函数1中调用变量,但是当我尝试在函数2中使用它时,它不起作用

这是我的密码:

function one($name,$a,$b,$c)
{
// $GLOBALS[${$name}] = array($a,$b,$c);
global $$name;
$$name = array($a,$b,$c);
}



function two($name)
{
$name="D1";
echo ${$name}[1];
}

one("D1",10,20,30);
one("D2",100,200,300);
two("D1");      // doesn't works


$name="D1";
echo ${$name}[1];   // works, gives 20
$name="D2";
echo ${$name}[1];   // works, gives 200
它不起作用,我不明白为什么。 谢谢你的帮助


艾蒂安

这样做怎么样:

function one() {
  $dynamicArray = generateDynamicArray();
  return $dynamicArray;
}

function two() {
  $one = one(); // if it's in a class use: $this->one();
  foreach($one in $key=>$value) {
       // your code for each item in the array we got form function one() 
  }
}

而不是全局定义它。

这样做怎么样:

function one() {
  $dynamicArray = generateDynamicArray();
  return $dynamicArray;
}

function two() {
  $one = one(); // if it's in a class use: $this->one();
  foreach($one in $key=>$value) {
       // your code for each item in the array we got form function one() 
  }
}
<?php

function one($name,$a,$b,$c)
{
    global $$name;
    $$name = array($a,$b,$c);
}

function two($name)
{
    global $$name;
    echo ${$name}[0];
}

one("D1",10,20,30);
two("D1"); 

而不是全局定义它。

可能重复使用
全局$name可能更容易亲爱的Paul,我试过你的方法,但函数2仍然存在同样的问题。”函数一($name,$a,$b,$c){global$$name;$$name=array($a,$b,$c);}函数二($name){echo${$name}[1];}一(“D1”,10,20,30);一个(“D2”,100200300);两名(首被告);//不起作用$name=“D1”;echo${$name}[1];//有效,给出20$name=“D2”;echo${$name}[1];//有效,提供了使用
global$name的200'可能的副本可能更容易亲爱的Paul,我试过你的方法,但函数2仍然存在同样的问题。”函数一($name,$a,$b,$c){global$$name;$$name=array($a,$b,$c);}函数二($name){echo${$name}[1];}一(“D1”,10,20,30);一个(“D2”,100200300);两名(首被告);//不起作用$name=“D1”;echo${$name}[1];//有效,给出20$name=“D2”;echo${$name}[1];//行,给200’亲爱的钱德勒宾,谢谢你的回答,但我的技术还不够熟练,无法理解。我澄清了我的问题,希望你能更清楚。谢谢钱德勒宾,谢谢你的回答,但我没有足够的技能去理解它。我澄清了我的问题,希望你能更清楚。谢谢,非常感谢你!我不知道,我以为全局范围在所有文档上,包括所有函数!我想肯定能理解。要在另一个函数中使用“global”变量,需要在函数中使用“global”声明它。我刚刚又读了一遍法语php用户指南,我写了它,但我不太清楚;)所以非常感谢你!非常感谢你!我不知道,我以为全局范围在所有文档上,包括所有函数!我想肯定能理解。要在另一个函数中使用“global”变量,需要在函数中使用“global”声明它。我刚刚又读了一遍法语php用户指南,我写了它,但我不太清楚;)所以非常感谢你!
<?php

function one($name,$a,$b,$c)
{
    global $$name;
    $$name = array($a,$b,$c);
}

function two($name)
{
    global $$name;
    echo ${$name}[0];
}

one("D1",10,20,30);
two("D1");