PHP$\u全局->;找回价值?
假设我有一个代码,在启动时执行如下操作:PHP$\u全局->;找回价值?,php,globals,Php,Globals,假设我有一个代码,在启动时执行如下操作: if (!isset($_GLOBALS['something'])){ getAndWriteToGlobals($x, $y) } 这显然会转到getAndWriteToGlobals函数,它只做很少的事情,并将另一个数据放入$\u GLOBALS['something'][$ee]=$value->中。它使用print\u r正确地工作(我打印了整个$\u GLOBALS['something']),所有东西都在那里 我遇到的问题是,当程
if (!isset($_GLOBALS['something'])){
getAndWriteToGlobals($x, $y)
}
这显然会转到getAndWriteToGlobals
函数,它只做很少的事情,并将另一个数据放入$\u GLOBALS['something'][$ee]=$value->
中。它使用print\u r
正确地工作(我打印了整个$\u GLOBALS['something']
),所有东西都在那里
我遇到的问题是,当程序从这个函数返回时,我试图在另一个类似这样的变量中获取数组
$var = $_GLOBALS['something'];
在本例中,$var在打印结果中不包含任何内容(甚至不为null),count($var)
返回0
。
我错过了什么
谢谢
编辑:
$\u GLOBALS
或$GLOBALS
顺便说一下,如果您试图创建全局变量,请确保语法:
// in somewhere (i think very first of master include file)
global $_GLOBALS;
$_GLOBALS['foo'] = 123;
// more code...
// and in function(s)
function getAndWriteToGlobals(...
global $_GLOBALS;
// do stuff with $_GLOBALS
PS:我不建议将变量命名为类似PHP结构的样式。我更喜欢将这些变量命名为
$\u globals
或$globals
($globals['globals']
,$globals['cfg']
等)。测试变量内部内容的最佳选择是。尝试使用var_dump($_GLOBALS['something'])
在函数之前和之后查看函数是否更改。如果将其取消设置,您唯一能做的就是向我们显示getAndWriteToGlobals
函数的内容。您不应该在应用程序中使用全局变量。这是一个痛苦世界的开端。你是说超全球的$GLOBALS
?它没有下划线。是的,没有下划线。PHP如果不是不一致的话就什么都不是。$GLOBALS不是下划线。
// in somewhere (i think very first of master include file)
global $_GLOBALS;
$_GLOBALS['foo'] = 123;
// more code...
// and in function(s)
function getAndWriteToGlobals(...
global $_GLOBALS;
// do stuff with $_GLOBALS