область видимости глобальной переменной в модуле drupal

0

Какова область действия глобальной переменной внутри модуля 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...
  }
}
Теги:
drupal
drupal-7
global-variables

1 ответ

0

Проверьте, какая документация говорит:

http://php.net/manual/en/language.variables.scope.php

Глобальные переменные по умолчанию доступны для всего глобального кода. Но если вы хотите использовать их внутри своей функции, вы должны сначала объявить их глобальными.

И любая переменная php имеет срок службы не более одного "вызова страницы". Поэтому при следующей следующей странице все значения теряются.

Если вы хотите сохранить какое-то значение дольше, чем однократное выполнение, вы должны использовать php-сессии или файлы cookie или файл или базу данных..., чтобы сохранить их там.

  • 0
    получил - я думал о глобальных переменных сеанса, таких как $user но я думаю, что они разные. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню