我试图在文件列表中包含内容:
$files = [
'a.php',
'b.php',
];
$contents = array_map('require', $files);
但这并没有奏效。我得到的错误是:
警告:array_map()期望参数1是有效的回调,函数'要求'未找到或无效的功能名称
为什么会这样,有没有办法让它发挥作用?
答案 0 :(得分:8)
因为要求不是一种功能,它是一种语言结构。
您需要创建有效的回调函数来执行实际需求,或使用自动加载器
答案 1 :(得分:1)
正如大家已经注意到的那样 - 它是一种语言结构。
你可以试试这个
$includes = array('a.php', 'b.php');
array_map(function($file){
require $file;
}, $includes);
答案 2 :(得分:0)
同意Mark Baker,因为它不起作用,如果包含类文件,可以使用_autoload()。
答案 3 :(得分:0)
use autoload or spl_autoload_register
to comfort work use namespaces
or you may use array_wallk without return value and anonunys function
`$files` = [
'a.php',
'b.php',
];
`$contents` = array_map(`$files`, function(`$el`){
require(`$el`);
});
//but foreach working faster:
foreach(`$files` as `$item`){
require(`$item`
);}`