Какова область действия глобальной переменной внутри модуля Drupal? Я создал модуль для пользовательского блока и должен знать, как долго глобальные настройки установлены, поэтому я знаю, как их использовать. Остаются ли они через экземпляр веб-сайта или только один раз для страницы. Например, в следующем коде drupal_set_message
один раз каждый раз, когда я загружаю страницу с блоком. Могу ли я быть уверенным, что переменная 'global' обновляется каждый раз, когда блок загружается?
<?php
global $my_array;
function fill_array()
{
global $my_array;
if(!isset($my_array))
{
drupal_set_message("filling the array");
$my_array = array();
// code to fill array up...
}
}
Проверьте, какая документация говорит:
http://php.net/manual/en/language.variables.scope.php
Глобальные переменные по умолчанию доступны для всего глобального кода. Но если вы хотите использовать их внутри своей функции, вы должны сначала объявить их глобальными.
И любая переменная php имеет срок службы не более одного "вызова страницы". Поэтому при следующей следующей странице все значения теряются.
Если вы хотите сохранить какое-то значение дольше, чем однократное выполнение, вы должны использовать php-сессии или файлы cookie или файл или базу данных..., чтобы сохранить их там.
$user
но я думаю, что они разные. Спасибо!