【发布时间】:2014-03-08 21:05:16
【问题描述】:
我正在尝试从所需文件中定义的函数访问变量:
**main.php**
function run() {
require('cfg.php');
require('function.php');
print(fn());
}
**cfg.php**
$test = 'Var!';
**function.php**
function fn() {
global $test;
return $test;
}
我期待“Var!”作为输出。但是$test 似乎是 NULL。
我也试过这个来调试:
**function.php
var_dump($test);
function fn() {
global $test;
return $test;
}
var_dump() 返回正确的值...我该如何解决这个问题?
【问题讨论】:
-
简单修复:不要使用全局变量。而是将这些变量传递给参数。
-
您不是在
global范围 中定义$test,而是在run()函数的范围 中定义它,所以使用global是没有意义的 -
为什么 var_dump 返回 'Var!'?
-
因为您将 function.php 与该 var_dump() 包含在
run()函数的范围内,并且 $test 在该函数的范围内 -
所以总而言之我可以使用匿名函数来成功......好吧
标签: php function include global-variables