我正在调用一个名为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.
Run Code Online (Sandbox Code Playgroud)
在no_direct.php中我试图:
var_dump($allowed)
Run Code Online (Sandbox Code Playgroud)
而我只是继续出现NULL.
这是否因为我们在ajax.php的require_once函数内运行而且$ allowed的范围推回到GLOBAL范围而不允许我从no_delete.php访问它?
我在这里看:'父'文件中定义的PHP变量在'required'文件中无法识别,只是为了勤奋.
我确信我可以使用GLOBAL关键字解决这个问题,但我希望得到一点澄清.PHP范围文档似乎没有回答我的问题.
它没有包含在另一个功能中,因为它被认为是这种情况.
require_once(ASSETS.'/no_direct.php');在您分配价值之前,您是否有可能已经召集过$allowed?
require_once(ASSETS.'/no_direct.php');
...
$allowed = array('group'=>'admin');
require_once(ASSETS.'/no_direct.php');
Run Code Online (Sandbox Code Playgroud)
在这种情况下,脚本no_direct.php不应该输出$allowed.
输出将是:
Notice: Undefined variable: allowed in D:\wampserver\www\gim\no_direct.php on line 2
NULL
Run Code Online (Sandbox Code Playgroud)
ps我的测试文件在wamp的localhost上有我的路径