我有以下问题:在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
为什么会这样?正如我所说,包含在我的主文件中作为复制粘贴,所以我不应该对变量范围有任何问题,对吗?
答案 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所说,你在这里发布的代码是有效的。