可变范围和包括

时间:2011-03-22 12:54:48

标签: php wordpress

我有以下问题:在index.php中,我设置了变量$ activelang。我

$activelang = active_language (); 
echo $activelang; //works perfectly 

后来在我的index.php代码中,我添加了一个新的php文件。

include ('myotherfile.php');

如果我尝试在myotherfile.php中使用$ activelang,它就不起作用了!我没有在函数中使用它,我尝试使用全局$ activelang并且它不起作用

所有这些都发生在wordpress安装中,但我所说的代码是纯PHP。我正在使用php 5.3

为什么会这样?正如我所说,包含在我的主文件中作为复制粘贴,所以我不应该对变量范围有任何问题,对吗?

2 个答案:

答案 0 :(得分:1)

include应该用于包含文件,而不是某些网络资源。

如果你懒得运行你在这里发布的代码,你会感到很惊讶,因为它会打印$ activelang。

答案 1 :(得分:0)

使用WordPress模板时,您应该在functions.php文件中创建用于处理包含的函数,然后在模板中调用这些函数。

所以在functions.php中你应该有:

function myOtherFile() {

    include('myotherfile.php');

}

在index.php中调用myOtherFile()

现在,如果您仍然遇到范围问题,请尝试以下方法:

function myOtherFile($activelang) {

    include('myotherfile.php);

}

然后在index.php中执行此操作:

$activelang = active_language();

myOtherFile($activelang);

如果这不起作用,那么我认为你的问题是在其他地方造成的。因为像牧师Shrapnel所说,你在这里发布的代码是有效的。