我正在尝试将变量从一个包含文件传递到另一个。除非我在第二个包含文件中将变量声明为全局变量,否则此方法不起作用。但是,我不需要在调用第一个include的文件中将其声明为全局文件。例如:
front.inc:
$name = 'james';
index.php:
include('front.inc'); echo $name; include('end.inc');
输出:詹姆斯
end.inc:
echo $name;
输出:无
如果我在end.inc中回显$ name之前声明了全局$name,那么它将正常工作。
我正在使用Apache服务器。我将如何配置它,以便不必声明$ name为全局名称?一个相对于另一个有优点/缺点吗?
当在PHP中包含文件时,它的行为就像代码包含在文件中。想象一下,将代码从每个包含的文件中复制并直接粘贴到您的index.php。这就是PHP与include一起工作的方式。
index.php
所以,在你的榜样,因为你已经设置了一个名为变量$name在你的front.inc文件,然后既包括front.inc和end.inc你的index.php,你就可以echo变$name后的任何地方include的front.inc你内index.php。同样,PHP会处理您index.php,就好像您所包含的两个文件中的代码是该文件的 一部分一样 。
$name
front.inc
end.inc
echo
include
当您将一个echo放在包含文件中的变量中,而不是在其内部未定义的变量中时,您将不会得到结果,因为它将与任何其他包含文件分开对待。
换句话说,要执行您期望的行为,您需要将其定义为全局行为。