bro*_*gas 2 conditional if-statement silverstripe
我正在尝试修改我的一个模板,以便在除两种页面类型之外的所有模板上调用某个包含.
我使用的代码是:
<% if ClassName != BusinessPage || ClassName != BusinessSubPage %>
... some code here
<% end_if %>
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为if语句传递所有页面类型并且if语句中的代码被触发.
如果我将代码缩短为只有一种页面类型,它会在页面类型上给出预期的结果:
<% if ClassName != BusinessPage %>
... some code here
<% end_if %>
Run Code Online (Sandbox Code Playgroud)
ClassName在if语句中使用as条件是否有一些意想不到的问题,我需要注意这可以解释我的问题?
你的if语句逻辑不太正确.你想要的是使用&&(AND)而不是||(OR):
<% if $ClassName != "BusinessPage" && $ClassName != "BusinessSubPage" %>
Run Code Online (Sandbox Code Playgroud)
这是一个逻辑表,显示了三个不同类名的结果.
$ClassName | $CN != BusinessPage | $CN != BusinessSubPage | OR | AND |
----------------|---------------------|------------------------|-------|-------|
ABC | true | true | true | true |
BusinessPage | false | true | true | false |
BusinessSubPage | true | false | true | false |
Run Code Online (Sandbox Code Playgroud)
该OR列显示无论ClassName结果如何总是如此.这就是if语句总是通过的原因.
| 归档时间: |
|
| 查看次数: |
694 次 |
| 最近记录: |