【发布时间】:2011-07-28 16:54:14
【问题描述】:
我正在调用一个名为 ajax.php 的文件(从我的浏览器进行测试)
ajax.php require_once delete.php
delete.php require_once no_direct.php
delete.php 开头是这样的:
$allowed = array('group'=>'admin');
require_once(ASSETS.'/no_direct.php'); //Yes, ASSETS is defined and no_direct is being included.
在 no_direct.php 中我正在尝试:
var_dump($allowed)
我只是不断出现 NULL。
发生这种情况是因为我们在 ajax.php 的 require_once 函数中运行,并且 $allowed 的范围推回到 GLOBAL 范围,不允许我从 no_delete.php 访问它吗?
我在看这里:PHP variable defined in 'parent' file not recognized in 'required' file,只是为了勤奋。
我确信我可以使用 GLOBAL 关键字来解决这个问题,但我希望能得到一点澄清。 PHP 范围文档似乎没有为我回答这个问题。
它并没有像想象的那样包装在另一个函数中。
【问题讨论】:
-
你不在某个函数内部?
ASSETS是文件路径吗? -
是的,资产是一个文件路径。所以它最终会像 C:/apache/htdocs/
-
no_direct.php 中还有其他代码吗?
-
你为什么不检查实际资产价值?
-
@Senica 你也不在一个包装 ajax.php 主体的函数中吗?只需检查以确保 100% 确定,因为这是最常见的原因。