如果我使用Twig表达式,如:
{% if a and function(a) %}
a
是假的,Twig是否还会评估function(a)
,还是表达式会在不评估第二部分的情况下评估为false
?与or
一样。
答案 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'));