【发布时间】:2014-05-05 15:17:22
【问题描述】:
我正在尝试让一个全局变量显示在包含的文件中。我将在这里复制路径:
$var = array();
funcA
{
global $var;
$var = array('some'=>'values');
funcB
{
global $var;
//$var prints('some'=>'values')
include_once('myfile.php');
}
}
或
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.
我错过了一步吗?
编辑:在“不使用全局变量”的投票让我没有实际答案之前,即使 $var 作为参数从 funcA 传递,上述方法仍然不起作用到funcB。我已经编辑了代码来演示。
该文件是通过文件路径而不是 url 包含的,但确实位于另一个目录中 - 这相关吗?
编辑:即使在初始化变量之前包括文件时,该值也不会传递给该文件。问题似乎在于 include 方法本身。我正在使用 include_once() 并提供文件的完整绝对路径。
【问题讨论】:
-
你的问题是什么,为什么嵌套函数:?
-
请避免使用全局变量。
-
var变量不会传输到包含的文件。这些函数实际上不是嵌套的,这就是它们的调用方式(funcB 是从 funcA 中调用的)。