我有一个很大的功能,我希望只在需要时加载.所以我假设使用include是要走的路.但是我需要几个支持函数,在go_do_it()中使用.
如果它们在包含的文件中,我得到一个重新声明错误.参见实施例A
如果我将支持函数放在一个include_once中,它可以正常工作,请参见示例B.
如果我使用include_once作为func_1代码,则第二个调用失败.
我很困惑,为什么include_once会导致第二次调用失败,似乎第二次看不到代码,但是如果存在嵌套函数,那么它会’看’它们.
示例A:
/* main.php */
go_do_it();
go_do_it();
function go_do_it(){
include 'func_1.php';
}
?>
/* func_1.php */
echo '
Doing it';
nested_func()
function nested_func(){
echo ' in nest';
}
?>
实施例B:
/* main.php */
go_do_it();
go_do_it();
function go_do_it(){
include_once 'func_2.php';
include 'func_1.php';
}
?>
/* func_1.php */
echo '
- doing it';
nested_func();
?>
/* func_2.php */
function nested_func(){
echo ' in nest';
}
?>