我想做一个简单的比较,例如:
if ($somevar === 'somestring')
现在,我发现了一些这样的示例:
<f:if condition="{somevar} == 'somestring'">
...
在TYPO3核心9.5中,example也有很多地方。
但是官方文档告诉我们,否则,我们必须使用基于数组的怪异解决方法:
不允许使用XX / YY处的字符串,但是暂时可以通过比较数组来实现字符串比较
由于复杂的实现,因此与Fluid之类的字符串进行比较,例如....尚无法实现。
这意味着...
为了避免询问原因:在TYPO3 9中比较字符串和变量的推荐方法是什么?什么时候可行?
答案 0 :(得分:1)
从TYPO3 8.7开始,Fluid if-ViewHelper可以进行字符串,数字和数组比较,而无需将字符串放入数组的解决方法。但是,不支持通配符或正则表达式(如果您使用PHP编写自定义ViewHelper,则天空是极限。)
支持的比较运算符为==,!=,<,<=,>,> =和%。还支持逻辑运算符&&和||。您可以使用取反布尔值! (如!{enable})。
我听说文档小组正在努力更新和重组Fluid文档。同时,此页面上有许多个有用的提示和技巧:https://usetypo3.com/24-fluid-tips.html
示例(混合使用标记和内联语法):
1:
<f:variable name="foo">stuff</f:variable>
<f:if condition="{foo} == 'stuff'">
<f:render partial="FooPartial" arguments="{foo: foo}" />
</f:if>
2:
{f:variable(name: 'bar', value: 123)}
{f:variable(name: 'baz', value: 50)}
{f:if(condition: '{bar} > {baz}', then: 'This will print')}
3:
<f:comment>&& and ||, too:</f:comment>
<f:if condition="{bar} > {baz} && {baz} < 100">This will print.</f:if>
4:
<f:comment>The string "false" will evaluate to boolean false:</f:comment>
{f:variable(name: 'untrue', value: 'false')}
{f:if(condition: untrue, then: 'Will not print', else: 'Will print')}
答案 1 :(得分:0)
我认为文档不是最新的。
在早期版本(小于7)中,无法比较字符串。由于需要一种解决方法,并且可以在阵列中找到它,因此以多种方式对其进行了升级。这样您就可以在网上找到很多东西。
如今,可以比较字符串,也可以比较OR
和'AND'多个表达式。