如果我使用像这样的 Twig 表达式:
{% if a and function(a) %}
如果 a
为假,Twig 是否仍然计算 function(a)
,或者表达式计算为 false
而不计算第二部分?与 或
类似。
最佳答案
tl;dr:如果第一部分为假,Twig 的逻辑运算符不会计算“and”表达式的第二部分,同样如果第一部分为真,则使用“or”。
作为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'));
关于php - Twig 的逻辑运算符是否对两个表达式都求值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15606082/