我试图找到解决方案,因为我无法解决它(我不是程序员;))。
在一个函数上,我设置了一个动态数组,我想在另一个函数中使用。为此,我想使用 $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()
}
}
而不是全局定义它。
<?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");
函数的作用域与全局作用域不同。