我最近深入研究了wordpress,我注意到一些非常不寻常的事情,在编码时,我注意到一个名为$post
变量的特定变量可供我在需要时进行操作,只要我的页面位于wp-includes
,wp-themes
或wp-plugins
文件夹中,而无需调用任何外部页面或函数。
所以我开始开发一个没有wordpress的网站,希望了解这种异常背后的奥秘。
我将不胜感激所有帮助,使我了解这种现象。我想在建筑工地使用这种技术。谢谢。。。
这不是异常。该变量存在于全局范围内,并且正在您提到的任一文件中定义。你可以很容易地做到像
包括.php
<?php
$myGlobal="Testing";
?>
任何文件.php
<?php
include "include.php";
echo $myGlobal;
?>
您也可以在函数中使用它,只要您引用全局函数,例如
另一个文件.php
<?php
include "include.php";
function test()
{
global $myGlobal;
echo $myGlobal;
}
test();
?>
理论
变量的作用域是定义它的上下文。在大多数情况下,所有PHP变量只有一个作用域。这个单一范围也跨越包含的文件和必需的文件
通过在函数中声明(变量)全局,对任一变量的所有引用都将引用全局版本。函数可以操作的全局变量的数量没有限制。
浏览一次这个PHP文档,你会更好地了解它是如何工作的。
看看全局变量:
http://php.net/manual/en/language.variables.scope.php
以及超全球:
http://www.php.net/manual/en/language.variables.superglobals.php
php.iniregister_globals = 打开
$post$get将在任何地方可用