1

I can't get working this conditional expression

<!--#if expr="$DOCUMENT_NAME!=index.html || $DOCUMENT_NAME!=links.html" -->

while this one without ! before = works perfect

<!--#if expr="$DOCUMENT_NAME=index.html || $DOCUMENT_NAME=links.html" -->

What's the problem? I get no error simply != doesn't work though || with other condition but works for single condition.

4

1 に答える 1

2

これは、=!=がほとんど同じ演算子ではないためです。ド・モルガンの法則(この古い投稿でも説明しました) により、

a != b || c != d

と同等です

a = b && c = d

whereには決して当てはまりません。x = a && x = ba != b

二項演算子を変更するには、条件を変更して同等にする必要があります。

したがって、上記のロジックにより、

$DOCUMENT_NAME!=index.html || $DOCUMENT_NAME!=links.html

と同等です

$DOCUMENT_NAME=index.html && $DOCUMENT_NAME=links.html

$DOCUMENT_NAME は "index.html"または"links.html" にすることができますが、両方にすることはできません。

ただし、2番目のスニペット、

$DOCUMENT_NAME=index.html || $DOCUMENT_NAME=links.html

上記の論理的な決して真ではない誤謬がないため、「機能します」。$DOCUMENT_NAME が "index.html" または "links.html" の場合に true になります


一部の言語/値は上記の同等性に違反します..しかし、それは別のトピックです.

于 2012-08-29T02:01:03.183 に答える