如果我使用变量' 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 %}