【发布时间】:2010-03-02 18:48:08
【问题描述】:
当我通过 Jumi 包含一个 PHP 脚本时,它似乎破坏了 global 关键字。示例:
<?php
$a = 5;
function foo()
{
global $a;
if (isset($a))
echo $a;
else
echo '$a is not set';
}
foo();
?>
当我自己运行这个 PHP 脚本(名为 test.php)时,它会正确打印 5。当我通过 Jumi 在仅包含以下内容的 Joomla 文章中运行它时:
{jumi test.php}{/jumi}
它打印$a is not set。
这是 Jumi 或 Joomla 中的错误,还是有一些(未记录的)我应该解决的方法?
当我通过 Jumi 包含一个 PHP 脚本时,它似乎破坏了 global 关键字。示例:
<?php
$a = 5;
function foo()
{
global $a;
if (isset($a))
echo $a;
else
echo '$a is not set';
}
foo();
?>
当我自己运行这个 PHP 脚本(名为 test.php)时,它会正确打印 5。当我通过 Jumi 在仅包含以下内容的 Joomla 文章中运行它时:
{jumi test.php}{/jumi}
它打印$a is not set。
这是 Jumi 或 Joomla 中的错误,还是有一些(未记录的)我应该解决的方法?
更新:如果我在脚本的顶部范围内将 $a 标记为全局:
<?php
global $a;
$a = 5;
function foo()
{
global $a;
if (isset($a))
echo $a;
else
echo '$a is not set';
}
foo();
?>
test.php 可以正常运行,既可以单独运行,也可以通过 Jumi 包含在内。我最好的猜测是 Jumi 脚本包含在函数上下文中,而不是全局上下文中。
【问题讨论】:
-
您的全球顶级解决方案对我不起作用(J1.5 / jumi 1.2.0):(
-
您是否在内部和外部都将其标记为全局?
-
+1 表示更新。这也是 sourcerer 代码的一个问题,但正如其他地方所提到的,它可能是 Joomla 的“功能”
标签: php joomla global-variables