如何在php

时间:2017-10-10 13:23:05

标签: php arrays global-variables

我试图找到解决方案,因为很多小时,但我无法解决它(我不是程序员;))。

在一个函数上,我设置了一个动态数组,我想在另一个函数中使用它。 为此,我想使用$ GLOBALS []数组 我没有问题从函数中调用变量,但是当我尝试在函数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

它不起作用,我不明白为什么。 谢谢你的帮助。

艾蒂安

2 个答案:

答案 0 :(得分:2)

做这样的事情怎么样:

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() 
  }
}

而不是全局定义。

答案 1 :(得分:1)

<?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"); 

您的职能范围与全球范围不同。