我想知道为什么不能将require_once
用作array_walk
的回调函数。我可以在匿名函数中包含它并运行它,但是如果直接使用会出现无效的回调错误:
$includes = array(
'file1.php',
'file2.php',
'file3.php'
);
array_walk($includes, 'require_once');
require_once
不是 PHP 函数,而是一种控制结构。
你将会浪费更多时间来找出问题所在。只需要使用:
$includes = [
'file1.php',
'file2.php',
'file3.php'
];
foreach($includes as $include) {
require_once($include);
}
您可以创建
function my_require_once ($name)
{
require_once $name;
}
function my_log ($message, $extra_data = null)
{
global $php_library;
require_once "$php_library/log.php"; // big and complicated functions, so defer loading
my_log_fancy_stuff ($message, $extra_data);
}
function require_multi($files)
{
$files = func_get_args();
foreach($files as $file)
{
require_once($file);
}
}
使用方法:
require_multi("fil1.php", "file2.php", "file3.php");
array_walk($includes, 'echo')
,由于echo
是语言结构而不是函数,它也会出现无效回调的错误。 - Michael Berkowskiforeach()
循环呢? - Spudley