我有这段代码:
if (($value->TEXT) !='Prépresse{/CR}{/CR}' || ($value->TEXT) !='Prépresse')
但不是工作,我也做
if(!in_array($value->TEXT,array('Prépresse{/CR}{/CR}','Prépresse')))
但我在$value
文本中包含语句并且我不想显示此字符串Prépresse
提前致谢
此语句将始终返回true
:
if (($value->TEXT) !='Prépresse{/CR}{/CR}' || ($value->TEXT) !='Prépresse')
因为:
- 如果
($value->TEXT) =='Prépresse{/CR}{/CR}'
则($value->TEXT) !='Prépresse')
- 如果
($value->TEXT) =='Prépresse')
则($value->TEXT) !='Prépresse{/CR}{/CR}'
将行更改为:
if (($value->TEXT) !='Prépresse{/CR}{/CR}' && ($value->TEXT) !='Prépresse')
<小时 />维基百科关于德摩根定律的文章对此进行了探讨,其中指出:
这些规则允许通过否定纯粹地相互表达连词和析取。
规则可以用英语表示为:
合取的否定是否定的析取.
析取的否定是否定的合相。或非正式地作为:
"not (A and B)"与 "(not A) or (not B)" 相同
另外,
"不是(A或B)"与"(不是A)和(不是B)"相同。
第一个代码应该使用&&
而不是||
来模拟与第二个代码相同的结果。
此外,$value->TEXT
两边的括号是不必要的。
if($value->TEXT != 'Prépresse{/CR}{/CR}' && $value->TEXT !='Prépresse')
如果它们不适合您,请尝试对$value->TEXT
进行var_dump
,看看它是否与您尝试匹配的字符串不同。