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