预先感谢您的帮助。 :)
好的,这是我的问题。
简化版代码:
包含文件的全局空间
include file where $var is defined and function is called that returns an include statement
include file returned by function and where $var is no longer accessible
为什么 $var 不再可访问?
我怀疑这与功能有关,或者可能是我遗漏了其他东西。 函数如下:
function blah() {
return include_once 'filename.php';
}
最佳答案
按设计工作。想象一下代码,就好像包含不存在一样:您位于一个函数内,该函数有自己的作用域。那里无法访问全局变量。
您的选择:
将变量作为对
blah(&$variable) 的引用传递
使用
global $varname
从全局空间导入变量如果您使用的是 PHP 5.3,请使用新的 closure特点
使用花哨的 OOP 构造,例如静态类、单例或依赖注入(inject)(可能有点过分)
关于PHP 变量范围与函数返回的嵌套包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484423/