为什么Drupal中定义的函数不能阻止访问全局变量?

时间:2011-01-08 17:11:24

标签: php drupal drupal-6

场景:我在PHP 5.2.14下的Drupal 6.20中定义了一个自定义块。我启用了PHP代码,我试图做这样的事情:

<?php
  $a = "success";

  function test() {
    global $a;

    print $a;
  }

  test();
?>

它在我的系统上没有打印任何内容,因为我看起来似乎没有变量$ a。我也试过$ GLOBALS ['a']无济于事。是什么赋予了?我觉得我疯了。

顺便说一句,在外部作用域中使用global关键字可以很好地使drupal的全局变量可用。

1 个答案:

答案 0 :(得分:1)

我对Drupal并不是很熟悉,但是我猜这些块被包含在某个其他函数/方法中,所以你有效地处理了一个嵌套函数,include包含在外部函数的本地范围内。

有了这个,$a = "success"功能无法解决test()是有意义的。

如果我是对的,如果你在两个范围内拍打global关键字,它应该会有效。