首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将变量从一个php包含文件传递到另一个:全局与非

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

Stack Overflow用户
提问于 2011-01-13 09:29:40
回答 3查看 193.7K关注 0票数 80

我正在尝试将一个变量从一个包含文件传递到另一个包含文件。除非我在第二个include文件中将变量声明为global,否则这是不起作用的。但是,我不需要在调用第一个include的文件中将其声明为global。例如:

front.inc:

代码语言:javascript
复制
$name = 'james';

index.php:

代码语言:javascript
复制
include('front.inc');
echo $name;
include('end.inc');

输出: james

end.inc:

代码语言:javascript
复制
echo $name;

输出:无

如果我在回显end.inc中的$name之前声明全局$name,那么它可以正常工作。这篇文章的公认答案解释说,这取决于你的服务器配置:Passing variables in PHP from one file to another

我使用的是Apache服务器。我该如何配置它,使声明$name为全局不再是必需的?其中一个与另一个相比是否有优势/劣势?

EN

回答 3

Stack Overflow用户

发布于 2011-09-28 19:22:50

这里有一个需要避免的陷阱。如果需要在函数中访问变量全局,则需要在该函数的开头说“$name $name;”。您需要对同一文件中的每个函数重复此操作。

代码语言:javascript
复制
include('front.inc');
global $name;

function foo() {
  echo $name;
}

function bar() {
  echo $name;
}

foo();
bar();

将仅显示错误。正确的方法应该是:

代码语言:javascript
复制
include('front.inc');

function foo() {
  global $name;
  echo $name;
}

function bar() {
  global $name;
  echo $name;
}

foo();
bar();
票数 34
EN

Stack Overflow用户

发布于 2017-01-18 11:57:30

这就是你所要做的:

在front.inc中

代码语言:javascript
复制
global $name;
$name = 'james';
票数 2
EN

Stack Overflow用户

发布于 2021-06-16 22:29:25

php 5.4.7也是如此

代码语言:javascript
复制
$mysql = false;
include("inc_mysql.php");
echo($mysql);

其中inc_mysql.php:

代码语言:javascript
复制
$mysql = true;

回显$mysql =false的值;

如果删除第一个$mysql=false;

代码语言:javascript
复制
include("inc_mysql.php");
echo($mysql);

回显$mysql =true的值;

因此,至少在某些PHP版本中,执行include不同于复制/粘贴代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4675932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档