如果我使用 Twig 表达式,例如:
{% if a and function(a) %}
如果是假的,a
Twig 是否仍然评估function(a)
,或者表达式是否会评估为false
而不评估第二部分?同样与or
.
tl;dr:如果第一部分为假,则 Twig 的逻辑运算符不计算“和”表达式的第二部分,如果第一部分为真,则同样使用“或”。
正如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'));