什么是以下PHP三元条件的Twig等价物?
<?php echo (isset($myVar) && !empty($myVar)) ? $myVar : '#button-cart'; ?>
Run Code Online (Sandbox Code Playgroud)
我已经光荣地尝试了这个,但它看起来并不好,当然,它不起作用:
{{ myVar is defined and myVar not empty ? myVar : '#button-cart' }}
Run Code Online (Sandbox Code Playgroud)
参见测试的所有测试.要使用测试,请使用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 | === |
Run Code Online (Sandbox Code Playgroud)
twig_test_empty
检查:
count(array) === 0
或Object::__toString === ''
或'' === $value || false === $value || null === $value || array() === $value