具有嵌套include的PHP变量作用域由函数返回

时间:2010-08-14 17:40:02

标签: php

提前感谢您的帮助。 :)
好的,这是我的问题。
简化版代码:
带有包含文件的全局空间

  

包含文件,其中定义$ var并调用函数以返回包含语句
  函数返回的包含文件以及无法再访问$ var的文件

为什么$ var不再可访问?

我怀疑它与该功能有关,或者我错过了其他的东西。 功能如下:

function blah() {
return include_once 'filename.php';
}

1 个答案:

答案 0 :(得分:3)

按设计工作。把代码想象成包含不在那里:你在一个函数里面,它有自己的范围。那里无法访问全局变量。

您的选择:

  • 将变量作为对blah(&$variable)

  • 的引用传递
  • 使用global $varname

  • 从全局空间导入变量
  • 如果您使用的是PHP 5.3,请使用新的closure功能

  • 使用静态OOP构造,如静态类,单例或依赖注入(可能是矫枉过正)