У меня есть большая функция, которую я хочу загрузить только тогда, когда это необходимо. Поэтому я предполагаю, что использование include - это путь. Но мне нужно несколько функций поддержки, а также - только в go_do_it().
Если они находятся в включенном файле, я получаю ошибку повторного использования. См. Пример A
Если я помещаю вспомогательные функции в include_once, он отлично работает, см. пример B.
Если я использую include_once для кода func_1, второй вызов терпит неудачу.
Я смущен, почему 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';
}
?>