¿Cómo usar include dentro de una función?

Tengo una función grande que deseo cargar solo cuando es necesario. Así que supongo que usar include es el camino a seguir. Pero también necesito varias funciones de soporte, solo se usa en go_do_it ().

Si están en el archivo incluido, recibo un error de redeclaración. Ver ejemplo A

Si coloco las funciones de soporte en include_once, funciona bien, vea el Ejemplo B.

Si uso include_once para el código func_1, la segunda llamada falla.

No estoy seguro de por qué include_once hace que la función falle en la segunda llamada, parece que no "ve" el código la segunda vez, pero si hay funciones anidadas, las "ve".

Ejemplo 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';
}
?>

Ejemplo 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';
}
?>

Respuestas a la pregunta(3)

Su respuesta a la pregunta