我在Smarty 2.6.27中工作。有一些东西会阻止 PHP 函数访问全局变量:
{php}
$a = "should be global";
function test(){
global $a;
echo $a;
}
test();
{/php}
但是变量$a
永远不会进入函数。我也这样做了:
{php}
$a = "should be global";
foreach ($GLOBALS as $key => $value) {
echo $key . "-" . $value;
}
{/php}
但同样,$a
它没有进入 PHP 全局变量列表。这似乎是因为 Smarty 在一些奇怪的上下文中运行 PHP ——例如,文档中提到了这一点:
要访问 {php} 块中的 PHP 变量,您需要使用 PHP 全局关键字。
我真的不需要访问其他 PHP 全局变量,我也不特别希望这里创建的变量范围更广,我只需要弄清楚如何使用函数中函数之外定义的变量。这些变量会有很多,因此将它们作为参数传递是不切实际的。