我试图找到一种方法将非全局变量传递给包含的文档。
page1.php中
function foo()
{
$tst =1;
include "page2.php";
}
使page2.php
echo $tst;
如何让变量可见?我将如何做这个PHP模板,所以我可以拆分页面正文和页脚的html页面。就像在wordpress中它有自定义wp函数,但我没有看到他们声明外部文件使用它们。
提前非常感谢。答案 0 :(得分:1)
我认为你并不完全了解正在发生的事情。第1页应该是回应。因此,您包含第2页,现在可以使用foo函数。你需要调用它以便它实际执行。使用global关键字将全局变量引入函数范围。然后你可以回应它。
1页:
include "page2.php";
foo();
echo $test;
第2页:
function foo()
{
global $test;
$test =1;
}
答案 1 :(得分:0)
当函数中的变量不是全局变量时,它们之外的变量不会被看到。但是应该在第二个文件中看到函数中的包含。
$test="Big thing";
echo "before testFoo=".$test;
// now call the function testFoo();
testFoo();
echo "after testFoo=".$test;
Result : *after testFoo=Big thing*
function testFoo(){
// the varuiable $test is not known in the function as it's not global
echo "in testFoo before modification =".$test;
// Result :*Notice: Undefined variable: test in test.php
// in testFoo before modification =*
// now inside the function define a variable test.
$test="Tooo Big thing";
echo "in testFoo before include =".$test;
// Result :*in testFoo before include =Tooo Big thing*
// now including the file test2.php
include('test2.php');
echo "in testFoo after include =".$test;
// we are still in the function testFoo() so we can see the result of test2.php
// Result :in testFoo after include =small thing
}
在test2.php中
echo $test;
/* Result : Tooo Big thing
as we are still in testFoo() we know $test
now modify $test
*/
$test = "small thing";
我希望这能使事情变得更清楚。