2011-01-08 10 views
1

シナリオ:PHP 5.2.14でDrupal 6.20でカスタムブロックを定義しました。私は、PHPコードを有効にしていると私はこのような何かをしようとしている:私は、スコープ変数$ aに見えることはできませんのでDrupalブロックで定義された関数がグローバルにアクセスできないのはなぜですか?

<?php 
    $a = "success"; 

    function test() { 
    global $a; 

    print $a; 
    } 

    test(); 
?> 

それは、私のシステムでは何も出力しません。私も$ GLOBALS ['a']を無駄にしようとしました。何がありますか?私は狂っているように感じる。

ちなみに、外側スコープでglobalキーワードを使用すると、drupalのグローバルが利用できるようになります。

答えて

1

私はDrupalに非常に精通していませんが、ブロックが他の関数/メソッドのどこかに含まれていると推測しています。したがって、ネストされた関数を効果的に扱います。 。

これで、test()関数内で$a = "success"に対処することはできません。

globalキーワードをと入力してスコープにすると正しく動作します。

+0

あなたはかなり正しいです、サー!私はここでいくつかの正気を見つけるのを手伝ってくれてありがとう。 – mkoistinen

+0

@mkoistinen大歓迎です、私もこれについて私の髪を引っ張ってきました。 –

関連する問題