【问题标题】:How to include files which names are stored in array in PHP?如何在 PHP 中包含名称存储在数组中的文件?
【发布时间】:2017-08-27 07:27:32
【问题描述】:

我想稍微简化一下PHP中包括或需要处理的文件,所以我写了这个函数:

$files = array("filename", "other_filename");

function required_files($filenames) {
    foreach ($filenames as $filename) {
        require_once("admin/files/".$filename.".php");
    }
}

required_files($files);

不幸的是,它不起作用,但我知道它正在由 PHP 处理,因为每当我将“文件名”更改为不存在的文件名时,我都会收到关于该文件不存在的错误.我在这里做错了什么?

PS:我试过echoreturnrequire_once()但没有效果。

编辑

在 Wordpress 模板的 functions.php 中。

【问题讨论】:

  • 因为您是在函数中调用它,所以适用变量范围规则
  • 但是我将变量传递给函数,应该可以吗?唯一的问题是它没有重新调整(我猜)?
  • 包含文件中定义的任何变量都限制在 required_files 函数的范围内
  • 那么如何将它们带出 required_files 函数范围呢?通常我使用 return 或 echo 并且它有效,但这次它没有。我应该将 foreach 循环从函数中取出并摆脱函数本身吗?那将是最简单的方法,但我想学习如何使用该函数来做到这一点。

标签: php arrays require-once


【解决方案1】:

您想要的似乎是不可能的,至少在不将包含文件中的所有变量声明为全局变量的情况下是不可能的(这可能是个坏主意)。

虽然这个问题并不完全重复,但(我认为)真正被问到的问题的答案可以在 SO herehere 上找到。

如果项目是面向对象的,使用autoloader 是一个不错的替代方法,但如果代码是以过程式风格编写的,则当然不可行。

【讨论】:

    猜你喜欢
    • 2020-08-15
    • 2017-05-03
    • 2015-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    • 2012-04-26
    相关资源
    最近更新 更多