我试图让全局变量显示在包含的文件中。我将在这里复制这条道路:
$var = array();
funcA
{
global $var;
$var = array('some'=>'values');
funcB
{
global $var;
//$var prints('some'=>'values')
include_once('myfile.php');
}
}
OR
funcA
{
$var = array('some'=>'values');
funcB($var)
{
//$var prints('some'=>'values')
include_once('myfile.php');
}
}
myfile.php:
//prints own content (is included)
//$var is empty, whether declared global or not.
我错过了一步吗?
编辑:在未使用全局变量'的upvote列车之前在没有实际答案的情况下离开了我,即使将$var
作为参数从funcA
传递到funcB
,上述内容仍无效。我编辑了代码以进行演示。
该文件是通过文件路径包含的,而不是url,但是它位于另一个目录中 - 是否相关?
编辑:即使在包含文件的之前初始化变量,该值也不会传递给该文件。问题似乎出现在include方法本身。我使用include_once()
并提供文件的完整绝对路径。
答案 0 :(得分:1)
为什么不作为参数传递和/或使用返回值?您的应用程序不需要回复全局变量,通常是设计缺陷的标志。
function getVar() {
return array('some'=>'values');
}
function printVar($var) {
include_once('myfile.php');
// print_r($var);
}
$var = getVar();
printVar($var);
如果您的问题大于示例所示,您应该查看PHP's OOP并开始使用类/对象。查看一些框架,以帮助您直接潜入。