Почему функции, определенные в блоках Drupal, не имеют доступа к глобальным переменным? - PullRequest
1 голос
/ 08 января 2011

Сценарий: я определил пользовательский блок в Drupal 6.20 под PHP 5.2.14.Я включил PHP Code и пытаюсь сделать что-то вроде этого:

<?php
  $a = "success";

  function test() {
    global $a;

    print $a;
  }

  test();
?>

Он ничего не печатает в моей системе, потому что я не могу отобразить переменную области $ a.Я также пробовал $ GLOBALS ['a'] безрезультатно.Что дает?Я чувствую, что схожу с ума.

Кстати, использование ключевого слова global во внешнем контексте с радостью сделает глобальные возможности drupal доступными.

1 Ответ

1 голос
/ 08 января 2011

Я не очень хорошо знаком с Drupal, но я предполагаю, что блоки включены где-то в какую-то другую функцию / метод, так что вы эффективно работаете с вложенной функцией, которая входит в локальную область действия этой внешней функции.

При этом имеет смысл, что $a = "success" нельзя адресовать из функции test().

Если я прав, это должно сработать, если вы добавите ключевое слово global к обеим областям.

...