我正在尝试将一个变量从一个包含文件传递到另一个包含文件。除非我在第二个include文件中将变量声明为global,否则这是不起作用的。但是,我不需要在调用第一个include的文件中将其声明为global。例如:
front.inc:
$name = 'james';
index.php:
include('front.inc');
echo $name;
include('end.inc');
输出: james
end.inc:
echo $name;
输出:无
如果我在回显end.inc中的$name之前声明全局$name,那么它可以正常工作。这篇文章的公认答案解释说,这取决于你的服务器配置:Passing variables in PHP from one file to another
我使用的是Apache服务器。我该如何配置它,使声明$name为全局不再是必需的?其中一个与另一个相比是否有优势/劣势?
发布于 2011-09-28 19:22:50
这里有一个需要避免的陷阱。如果需要在函数中访问变量全局,则需要在该函数的开头说“$name $name;”。您需要对同一文件中的每个函数重复此操作。
include('front.inc');
global $name;
function foo() {
echo $name;
}
function bar() {
echo $name;
}
foo();
bar();
将仅显示错误。正确的方法应该是:
include('front.inc');
function foo() {
global $name;
echo $name;
}
function bar() {
global $name;
echo $name;
}
foo();
bar();
发布于 2017-01-18 11:57:30
这就是你所要做的:
在front.inc中
global $name;
$name = 'james';
发布于 2021-06-16 22:29:25
php 5.4.7也是如此
$mysql = false;
include("inc_mysql.php");
echo($mysql);
其中inc_mysql.php:
$mysql = true;
回显$mysql =false的值;
但
如果删除第一个$mysql=false;
include("inc_mysql.php");
echo($mysql);
回显$mysql =true的值;
因此,至少在某些PHP版本中,执行include不同于复制/粘贴代码。
https://stackoverflow.com/questions/4675932
复制相似问题