我需要 php 中的全局数组。
下面是示例:
global $array;
$array[0] = test;
如果(某事) 函数 f1() 还 函数 f2();
function f1()
{
$array[0] = $array[0]." and test1";
}
function f2()
{
$array[0] = $array[0]." and test2";
}
但问题是数组不是全局的,而是局部的。
你知道为什么吗?
谢谢。
你必须在每个函数中调用全局,以便 PHP 知道在本地范围之外查看。
function f1()
{
global $array;
$array[0] = $array[0]." and test1";
}
function f2()
{
global $array;
$array[0] = $array[0]." and test2";
}
请注意,在"现实世界"中,您可能应该尽可能避免使用全局变量,因为全局变量通常可以通过重构或重新设计来解决。全球倾向于导致一个大泥球。
您应该考虑通过引用传递
function f3(&$array)
{
$array[0] = $array[0]." and test3";
}
$array = array();
$array[0] = "test";
f3($array);
var_dump($array);
您可以在以下位置查看示例: http://codepad.org/27R5ZuKM
将参数传递给函数并返回结果怎么样?
避免一个大型全球意大利面:
function f1( $array )
{
$array[0] = $array[0]." and test1";
return $array;
}
function f2( $array )
{
$array[0] = $array[0]." and test2";
return $array;
}
您需要在本地范围内(即在函数中)将数组声明为全局数组。
$array[0] = test;
如果(某物)函数 f1() 其他函数 f2();
function f1()
{
global $array;
$array[0] = $array[0]." and test1";
}
function f2()
{
global $array;
$array[0] = $array[0]." and test2";
}