我有这段代码:
if(!in_array($value->TEXT,array('Prépresse{/CR}{/CR}','Prépresse')))
但不行,我也
$value
但我没有在Prépresse
文字中包含该语句,我不想显示此字符串non-static method cannot be referenced from a static context
提前致谢
答案 0 :(得分:5)
此语句将始终返回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')
在De Morgan's Laws的维基百科文章中对此进行了探讨,该文章指出:
这些规则允许通过否定来纯粹以彼此的方式表达连词和结合。
规则可以用英语表示:
结合的否定是否定的脱节 分离的否定是否定的结合。
或非正式地:
"不是(A和B)" 与"(不是A)或(不是B)"
同时,
" not(A或B)" 与"(不是A)和(不是B)" 相同。
答案 1 :(得分:0)
第一个代码应使用||
代替$value->TEXT
来模拟与第二个代码相同的结果。
此外,if($value->TEXT != 'Prépresse{/CR}{/CR}' && $value->TEXT !='Prépresse')
周围的括号是不必要的。
var_dump
如果他们不适合您,请尝试在$value->TEXT
上执行[StringLength(100)]
[Index("IX_EntidadCodigoHabilitacion", IsUnique = true)]
public string CodigoHabilitacion { get; set; }
,看看它是否与您要匹配的字符串不同。