一尘不染

将变量从一个PHP包含文件传递到另一个:全局与非

php

我正在尝试将变量从一个包含文件传递到另一个。除非我在第二个包含文件中将变量声明为全局变量,否则此方法不起作用。但是,我不需要在调用第一个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为全局名称?一个相对于另一个有优点/缺点吗?


阅读 321

收藏
2020-05-29

共1个答案

一尘不染

当在PHP中包含文件时,它的行为就像代码包含在文件中。想象一下,将代码从每个包含的文件中复制并直接粘贴到您的index.php。这就是PHP与include一起工作的方式。

所以,在你的榜样,因为你已经设置了一个名为变量$name在你的front.inc文件,然后既包括front.incend.inc你的index.php,你就可以echo$name后的任何地方includefront.inc你内index.php。同样,PHP会处理您index.php,就好像您所包含的两个文件中的代码是该文件的
一部分一样

当您将一个echo放在包含文件中的变量中,而不是在其内部未定义的变量中时,您将不会得到结果,因为它将与任何其他包含文件分开对待。

换句话说,要执行您期望的行为,您需要将其定义为全局行为。

2020-05-29