PHP 变量范围与函数返回的嵌套包含

标签 php

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

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/

相关文章:

Windows 中的 PHP ZipArchive 损坏

php - 将人类友好的日期转换为毫秒

php - Wordpress 基本概念 - 如何扩展/覆盖/自定义插件 Hook ?

php - SQS 是缓慢的发布请求

php - 从 MySql 数据库中获取值到表单中

php - 使用 php/javascript 在链接上提交表单

php - 尝试通过表单插入数据库时​​出错。 SQLSTATE[42S22]

php - Mysql 到 PDO 代码转换

php mysql 搜索,突出显示包含提供的关键字的部分结果

c# - Java 或 Python 中的 Duplicate\K 功能?