2

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

{% if a and function(a) %}

如果是假的,aTwig 是否仍然评估function(a),或者表达式是否会评估为false而不评估第二部分?同样与or.

4

1 回答 1

5

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'));
于 2013-03-25T01:39:04.673 回答