【问题标题】:Included pages receive variables? [duplicate]包含的页面接收变量? [复制]
【发布时间】:2012-09-18 00:25:47
【问题描述】:
在我的脚本中,我根据变量选择要包含的页面。
包含的页面是否接收在主页中定义的变量?或者我必须重新定义它们?
如果是这样,将变量传递到包含页面的最佳方法是什么?
我试过 include("page.php?var=".$var)
但似乎实际上试图包含具有该字符串名称的文件。
建议?
【问题讨论】:
标签:
php
variables
include
scope
【解决方案1】:
如果您在包含页面之前定义变量,则不需要任何查询字符串。您的变量将在包含的页面中以名称访问。例如
$name = "Awais"
include("page.php");
然后在page.php
echo $name; //will print Awais
【解决方案3】:
您最好在主页中自行设置变量。 include 尝试包含一个本地文件,而不是 HTTP GET 请求,但无论如何设置变量,您就可以使用它们。
【解决方案4】:
如果您定义了$var = 1,然后在include("page.php"); 之后,变量将可以在该文件中访问,因为它只不过是您已有的扩展。
【解决方案5】:
这... "include("page.php?var=".$var)" 不起作用
请尝试以下方法:
page1.php
<?php
$dog_name = "scruff";
include("otherpage.php");
?>
otherpage.php
<?php
echo $dog_name;
?>
这将在 page1.php 上输出:
scruff
正如midnightlightning 所说:“已经在第一页范围内的变量已经在第二页中定义了。”
【解决方案6】:
包含的页面是否接收在主页中定义的变量?
是的,您包含的代码在同一范围内。这也是记录在案的行为,请参阅include。
$var = 'value';
include('page.php'); # has $var defined now.
unset($var);
include('page.php'); # has $var undefined now.
所以你可以看到,没有必要重新定义它们。
但您可能希望将其分开,因为它有副作用,请参阅: