Twig的isset()和!empty()的等效项是什么?

卡罗尔·西奥多·佩鲁

以下PHP三元条件的Twig等效项是什么?

<?php echo (isset($myVar) && !empty($myVar)) ? $myVar : '#button-cart'; ?>

我曾尝试过这种方法,但它看起来并不好,当然也行不通:

{{ myVar is defined and myVar not empty ? myVar : '#button-cart' }}
斯蒂芬·维肯(Stephan Vierkant)

有关所有测试,请参见测试要使用测试,请使用variable is test您在“空”测试中缺少“是”。感谢@DarkBee指出了这个小错误。

但是要回答您的第一个问题,请看一下Twig / Extension / Core.php。该类说明了每个Twig测试是如何在“幕后”进行的。

这是一张包含所有测试及其等效PHP的小表:

| Twig test    | PHP method used                                   |
|--------------|---------------------------------------------------|
| constant     | constant                                          |
| defined      | defined                                           |
| divisible by | %                                                 |
| empty        | twig_test_empty                                   |
| even         | % 2 == 0                                          |
| iterable     | $value instanceof Traversable || is_array($value) |
| null         | null ===                                          |
| odd          | % 2 == 1                                          |
| same as      | ===                                               |

twig_test_empty 检查:

  • 如果是数组:count(array) === 0
  • 如果它是一个对象:Object::__toString === ''
  • 如果是其他东西(例如字符串,浮点数或整数): '' === $value || false === $value || null === $value || array() === $value

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章