【发布时间】:2011-06-08 05:41:01
【问题描述】:
我正在尝试将变量从一个包含文件传递到另一个。除非我在第二个包含文件中将变量声明为全局变量,否则这不起作用。但是,我不需要在调用第一个包含的文件中将其声明为全局。例如:
front.inc:
$name = 'james';
index.php:
include('front.inc');
echo $name;
include('end.inc');
输出:詹姆斯
end.inc:
echo $name;
输出:没有
如果我在 end.inc 中回显 $name 之前声明了全局 $name,那么它可以正常工作。这篇文章接受的答案解释说,这取决于您的服务器配置:Passing variables in PHP from one file to another
我正在使用 Apache 服务器。我将如何配置它以便不需要将 $name 声明为全局?一种与另一种相比有优势/劣势吗?
【问题讨论】:
-
includes 不像函数。包括不破坏变量范围。就好像您将包含文件的内容直接复制粘贴到调用脚本中一样。
-
end.inc 中的回声是否在函数内?
-
这会破坏变量范围。在这种情况下,您可能应该在参数中将 $name 传递给函数。
-
这应该按规定工作!
-
end.inc 中的回声不在函数内部。假设我上面描述的三个文件包含的内容与我所写的内容差不多。
标签: php variables include scope global