我有一段代码如下:
---- file.php ----
require_once("mylib.php");
function($a,$b)
{
$r = $_GLOBALS['someGlobal'];
echo $r;
}
---- mylib.php ----
$_GLOBALS['someGlobal'] = "Random String";
这有点夸大其词,但是我遇到的确切问题我没有找到一些相关的东西,但没有任何东西直接回答我的问题。
当我致电function($a,$b)
时,没有任何回音,那就是 - $r
是“空的”,好像没有分配给$_GLOBALS['someGlobal']
;
此外,我尝试过以下内容:
global $someGlobal;
$someGlobal = "Random String";
同样的事情,没有效果。
另外,如果我尝试使用file.php
,或只使用global
,则在$someGlobal
中,它仍然无效。
据我所知,从php.net上的文档中使用mylib.php中的全局$someGlobal
(并将其插入到file.php的顶层),它实际上并没有做太多,因为它是就我所知,已经处于范围层次结构的“顶层”。但是,我认为将其注册为全局可能允许从函数内部访问它,但显然不是这种情况。
任何人都可以解释原因,并解释如何解决这个问题吗?
编辑:我不应该在file.php中,如果我使用$_GLOBALS['someGlobal'];
,如果它不在函数中,则该值可以恢复正常。
答案 0 :(得分:2)
错误的变量名称。这是$GLOBALS
而不是$_GLOBALS
答案 1 :(得分:0)
From the docs,_
变量中没有$GLOBALS
:
这对我来说很好用:
$GLOBALS['glob'] = "string";
function foob() {
echo $GLOBALS['glob'];
}
foob();
答案 2 :(得分:0)
它是$GLOBALS
,而不是$_GLOBALS
!