Как вызвать функцию только один раз (глобальная область видимости переменной)
Я пытаюсь разобраться с наиболее эффективным способом использования функций в WordPress.
У меня есть большая медленная функция big_slow_function(), которую желательно запускать только один раз. Но мне нужно использовать логическое значение, возвращаемое этой функцией, во всех файлах моей темы (в header.php, page.php, sidebar.php, footer.php, loop-page.php, functions.php и т.д.).
Я размышляю, как это сделать.
Я попробовал поместить следующий код в functions.php, чтобы избежать вызова big_slow_function() более одного раза:
global $my_important_boolean;
function $get_my_important_boolean()
{
global $my_important_boolean;
if ($my_important_boolean == NULL) // если big_slow_function() еще не была запущена
$my_important_boolean = big_slow_function();
return $my_important_boolean;
}
А затем я разместил такой код по всем файлам темы:
if ($get_my_important_boolean()) {
// настройка контента для пользователя
}
Но функция big_slow_function() все равно выполняется каждый раз. Я не уверен, что делаю неправильно, и мне было сложно найти хорошую документацию по области видимости переменных в WordPress. Возможно, мне нужно передавать ссылку/указатель на переменную?
Буду очень признателен за любую помощь с этой проблемой, так как я борюсь с ней уже некоторое время.

function my_big_function() {
static $result;
// Функция уже была выполнена
if ( $result !== null )
return $result;
// Много работы здесь для определения $result
$result = 'whatever';
return $result;
}
Смотрите также: https://stackoverflow.com/questions/6188994/static-keyword-inside-function
