PHP 和全局数组



我需要 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";
}

相关内容

  • 没有找到相关文章

最新更新