Twig的逻辑运算符是否评估这两个表达式?

时间:2013-03-25 00:58:08

标签: php symfony twig

如果我使用Twig表达式,如:

{% if a and function(a) %}

a是假的,Twig是否还会评估function(a),还是表达式会在不评估第二部分的情况下评估为false?与or一样。

1 个答案:

答案 0 :(得分:5)

tl; dr:Twig的逻辑运算符不评估'和'的第二部分。表达式,如果第一部分是假的,同样是'或'如果第一部分是真实的。

作为pointed out by zerkms,这可以通过使用die来测试。

例如:

{% if water_is_dry and die('water_is_wet') %}

不会死,因为第一个表达式为null,是假的。

鉴于:

{% if water_is_dry or die('water_is_wet') %}

会死。

请注意,这仅适用于将die作为函数添加到Twig实例中,如下所示:

$twig->addFunction(new Twig_SimpleFunction('die', 'die'));