0

当作为普通 php 网页运行时,此代码段按预期工作。

<?php
  $foo = 123;

function whatever ()
{
  global $foo;
  echo "FOO = $foo<br/>";
}

whatever ();
?>

输出是

FOO = 123

但是将完全相同的代码放在drupal基本页面中会给出这个输出

FOO = 

PHP 显然可以正常工作,但 globals 不能。我是drupal的菜鸟,但我知道php。我用谷歌搜索了这个问题,但没有发现任何相关内容。

为什么它在drupal中不起作用?我如何使它工作?请不要回答,你不应该使用全局!

4

1 回答 1

1

进一步的实验表明,这个代码在 Drupal php 页面中是有效的。

<?php
  global $foo;  // This trick makes it work
  $foo = 123;

function whatever ()
{
  global $foo;
  echo "FOO = $foo<br/>";
}
whatever ();
?>

不应该需要第一个“全局”语句,但似乎使它起作用。还将前两行更改为

$GLOBAL ["foo"] = 123;

正在工作中。

希望这会有所帮助。

于 2013-06-27T10:03:08.667 回答