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