我需要php中的全局数组。
以下是示例:
global $array;
$array[0] = test;
if(something) 函数f1() 其他 function f2();
function f1()
{
$array[0] = $array[0]." and test1";
}
function f2()
{
$array[0] = $array[0]." and test2";
}
但问题是数组不会像全局一样受到影响。
你知道为什么吗?
谢谢。
答案 0 :(得分:5)
你必须在每个函数中调用global,以便PHP知道在本地范围之外查看。
function f1()
{
global $array;
$array[0] = $array[0]." and test1";
}
function f2()
{
global $array;
$array[0] = $array[0]." and test2";
}
请注意,在“现实世界”中,您应该尽可能避免使用全局变量,因为通常可以通过重构或重新设计来解决全局变量。 Globals倾向于导致一个大泥球。
您应该考虑通过引用传递
function f3(&$array)
{
$array[0] = $array[0]." and test3";
}
$array = array();
$array[0] = "test";
f3($array);
var_dump($array);
上看到示例
答案 1 :(得分:2)
如何将参数传递给函数并返回结果?
避免一个大的全球意大利面:
function f1( $array )
{
$array[0] = $array[0]." and test1";
return $array;
}
function f2( $array )
{
$array[0] = $array[0]." and test2";
return $array;
}
答案 2 :(得分:1)
您需要在本地范围内将数组声明为全局,即在函数中。
$array[0] = test;
if(something)function f1()else function f2();
function f1()
{
global $array;
$array[0] = $array[0]." and test1";
}
function f2()
{
global $array;
$array[0] = $array[0]." and test2";
}