我知道这很琐碎,也不是那么重要,但它可以节省我的生命周期......您知道,您可以在PHP的if块中声明变量
if( $row = $sql->fetch ){
//do something with the $row if $row = null this part is skipped
}
在twig中,我不能这样做,例如(设置image = object.image,如果我的对象没有image,变量image就变成null,if语句就不会变成true
{% if image = object.image %}
<img src="{{ image.getUrl() }}"> //and so on
{% endif %}
相反,我必须这样做(检查对象是否有图像,如果有,将其保存到新变量,并对它做一些事情)
{% if object.image %}
{% set image = object.image %}
<img src="{{ image.getUrl() }}"> //and so on
{% endif %}
当然,我知道这不是第一世界的问题,你可能认为我的问题是无用的,但我不得不写这些"更长"的语句一天很多次,所以我可以在最后快几分钟,所以有没有一个语法,让我设置变量在一个如果块,而不是比较他们?
非常感谢
- 编辑**
3条答案
按热度按时间guicsvcw1#
不可以,无法在
if
标签中声明变量。只能使用set
标签设置变量。nkoocmlb2#
您可以使用三元运算符设置它。
{% set result = condition ? "a": "b" %}
j2qf4p5b3#
您可以使用(查看here以获取更多帮助):
希望这有帮助!