此代码段作为普通的php网页运行时按预期工作。
<?php
$foo = 123;
function whatever ()
{
global $foo;
echo "FOO = $foo<br/>";
}
whatever ();
?>
输出
FOO = 123
但是在drupal基本页面中输入完全相同的代码会产生此输出
FOO =
PHP显然有效,但全局变量没有。 我是drupal的菜鸟,但我知道php。我搜索了这个问题,但没有发现任何相关内容。
为什么它不能在drupal中工作? 我如何使其工作? 请不要回答,你不应该使用全球!
答案 0 :(得分: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;
正在运作。
希望这会有所帮助。