0

次の PHP スクリプトを検討してください。

<?php
  $a = "ok";
  function foo() {
    global $a; print "[$a]";
  }
  foo();
?>

[ok]PHPインタープリターで実行すると、期待どおりに出力されます。ただし[]、Drupal ページで実行すると印刷されます。Drupal で機能させるには、変数宣言の前に別のグローバル仕様を追加する必要があります。

<?php
  global $a; // WHY IS THIS NEEDED IN DRUPAL?
  $a = "ok";
  function foo() {
    global $a; print "[$a]";
  }
  foo();
?>
4

1 に答える 1

1

おそらく、Drupal が関数内にファイルをインクルードしているためです。

function render() {
    include 'my_script.php';
}

ではなく、関数に対して$aローカルになりますglobal

于 2013-07-03T15:31:10.620 に答える