php - Twig 的逻辑运算符是否对两个表达式都求值?

标签 php symfony twig

如果我使用像这样的 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/

相关文章:

PHP 在多个日期范围内查找 N 年内的差距

PHP MySQL 使用 PHP 脚本在数据库表中插入数据

php - 是否可以编译 Symfony2 assetic :dump and deploy that rather than run it on the server?

javascript - 使用 AJAX 自动更新 Symfony5 表单多选(选择列表)数据

php - 如何访问 Twig 中的类常量?

debugging - 如何在 Twig 模板中 var_dump 变量?

php - 升级phpMyAdmin后出现 '...configuration storage is not completely configured...'错误的目的是什么?

php - 如果字符串只包含空格?

javascript - Webpack Encore 未在基本模板中加载 JavaScript

templates - 如何在 Symfony2/Twig 模板中包含原始 HTML 文件?