如何在 PHP 中包含名称存储在数组中的文件?

Posted

技术标签:

【中文标题】如何在 PHP 中包含名称存储在数组中的文件?【英文标题】:How to include files which names are stored in array in 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 循环从函数中取出并摆脱函数本身吗?那将是最简单的方法,但我想学习如何使用该函数来做到这一点。 【参考方案1】:

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

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

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

【讨论】:

以上是关于如何在 PHP 中包含名称存储在数组中的文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何传递文件中包含的命令行参数并保留该文件的名称?

如何在 CURLOPT_POSTFIELDS 中包含数组数据? [复制]

在 laravel 中包含 php 文件的位置以及如何使用 javascript 调用 php 文件中的特定函数

如何将存储在 HDFS 中包含行的文本文件转换为 Pyspark 中的数据框?

如何创建一个 SSIS 包,该包循环使用名称中包含特定关键字的 excel 文件?

如何在文件中包含php别名