2011-01-08 62 views
1

場景:我已經在PHP 5.2.14下的Drupal 6.20中定義了一個自定義塊。我已經啓用PHP代碼,我試圖做這樣的事情:爲什麼Drupal中定義的函數不能訪問全局變量?

<?php 
    $a = "success"; 

    function test() { 
    global $a; 

    print $a; 
    } 

    test(); 
?> 

它打印出我的系統上沒有什麼,因爲我似乎無法範圍變量$ a。我也試過$ GLOBALS ['a']無濟於事。是什麼賦予了?我覺得我瘋了。

順便說一句,在外部作用域中使用全局關鍵字可以使drupal的全局變量可用。

回答

1

我對Drupal並不是非常熟悉,但我猜測這些塊被包含在某個其他函數/方法的某處,因此您正在有效地處理一個嵌套函數,包含在該函數的本地作用域中。

因此,有意義的是$a = "success"不能從test()函數中尋址。

如果我是對的,它應該工作,如果你打global關鍵字兩個範圍。

+0

先生,你說得很對!謝謝你幫我在這裏找到一些理智。 – mkoistinen 2011-01-08 17:35:16

相關問題