一个重要的注意事项:
$GLOBALS
肮脏和邪恶。不要使用它们。曾经。永远不会。
请关注它不起作用的事实,而不是首先为什么要这样做,这纯粹是关于技术练习的理论问题。
这是一个比较奇怪的。我正在尝试使用名为$GLOBALS
.
从全局范围
让我们看看var_dump()
在全局范围内 ing this 会得到什么。
$g = sprintf('%s%s%s%s%s%s%s', chr(71), chr(76), chr(79), chr(66), chr(65), chr(76), chr(83));
var_dump($$g);
结果是一个全局变量数组,您可以在此处查看。伟大的!所以,让我们在一个函数中试试这个。
从函数范围
首先,让我们确保我们实际上可以$GLOBALS
在函数中运行检查。
function globalAllTheThings()
{
var_dump($GLOBALS);
}
globalAllTheThings();
结果是:它有效!你可以在这里看到这个。
现在,让我们在函数内部尝试我们在全局范围内使用的第一个测试,看看会发生什么。
function globalAllTheThings()
{
$g = sprintf('%s%s%s%s%s%s%s', chr(71), chr(76), chr(79), chr(66), chr(65), chr(76), chr(83));
var_dump($$g);
}
globalAllTheThings();
为了简单起见
您也可以在没有奇怪混淆的情况下尝试这个(不要问)。
function globalAllTheThings()
{
$g = 'GLOBALS';
var_dump($$g);
}
globalAllTheThings();
它返回NULL
。那是怎么回事??为什么它会返回NULL
,我该怎么做才能使它正常工作。你为什么问?当然是为了教育目的,为了科学!