我正在构建一个 PHP 应用程序,它使用选择菜单来构建电子邮件模板。模板被分成可重用的部分(每个部分都是一个单独的 html 文件)。有没有一种简单的方法可以用一个表达式要求多个文件? (我的PHP真是生疏了……)
本质上我想做类似的事情:
function require_multi() {
require_once($File1);
require_once($File2);
require_once($File3);
require_once($File4);
}
好吧,你可以把它变成一个函数:
function require_multi($files) {
$files = func_get_args();
foreach($files as $file)
require_once $file;
}
像这样使用:
require_multi("one.php", "two.php", ..);
但是,如果您要包含类,更好的解决方案是使用 autoloading。
因为您想要要求或包含多个文件,您可以使用此递归 算法将文件包含在指定文件夹中。该文件夹是启动的根目录 迭代器。因为算法是递归的,所以会自动遍历所有 后续文件夹并包含这些文件。
public function include_all_files($root) {
$d = new RecursiveDirectoryIterator($root);
foreach (new RecursiveIteratorIterator($d) as $file => $f) {
$ext = pathinfo($f, PATHINFO_EXTENSION);
if ($ext == 'php' || $ext == 'inc')
include_once $file; // or require, require_once, include_once()
}
}
include_all_files('./lib');