我无法处理这个条件表达式
<!--#if expr="$DOCUMENT_NAME!=index.html || $DOCUMENT_NAME!=links.html" -->
而在CCD_ 2之前没有CCD_
<!--#if expr="$DOCUMENT_NAME=index.html || $DOCUMENT_NAME=links.html" -->
怎么了?我没有得到任何错误,只是!=
不工作,尽管||
在其他条件下工作,但在单个条件下工作。
这是因为=
和!=
几乎不是同一个运算符。注意,根据德摩根定律(我也在这篇旧文章中解释过),
a != b || c != d
相当于
a = b && c = d
这对于CCD_ 7是从不为真,其中CCD_。
更改二进制运算符需要更改条件词以使其等效。
因此,根据上述逻辑,
$DOCUMENT_NAME!=index.html || $DOCUMENT_NAME!=links.html
相当于
$DOCUMENT_NAME=index.html && $DOCUMENT_NAME=links.html
不能为真,因为$DOCUMENT_NAME可以是"index.html"或"links.html",但不同时是。
然而,第二个片段,
$DOCUMENT_NAME=index.html || $DOCUMENT_NAME=links.html
"有效"是因为不存在上述逻辑上永远不真实的谬论。当$DOCUMENT_NAME是"index.html"或"links.html"时,情况将是正确的。
某些语言/值将违反上述等效性。。但这是另一个话题。