无法在Twig宏中使用变量名称GET

时间:2014-09-25 13:35:26

标签: php twig

如果我使用变量' GET'在Twig宏中,我收到以下错误:

Fatal error: Cannot re-assign auto-global variable _GET in /var/www/basedir/vendor/twig/twig/lib/Twig/Environment.php(331) : eval()'d code on line 21

在我挠了头之后,我发现我可以改名为“GET'到了'得到',错误就消失了。但是,可以在模板中使用变量GET,而不是宏。

我可以而且会改名字。我的问题是为什么会发生这种情况,还有其他非允许的变量名称我必须注意吗?

<?php
require_once '../../../vendor/autoload.php';
Twig_Autoloader::register();
try {
    $loader = new Twig_Loader_Filesystem('templates');
    $twig = new Twig_Environment($loader, array('debug' => true,));
    $twig->addExtension(new Twig_Extension_Debug());
    echo $twig->render('get.html', array('GET'=>$_GET));
} catch (Exception $e) {
    die ('ERROR: ' . $e->getMessage());
}
?>

get.html

{% import "forms.html" as forms %}

{{ forms.someFunction(GET) }}

forms.html

{% macro someFunction(GET) %}
{{ dump(GET) }}
{% endmacro %}

0 个答案:

没有答案